ugly-app 0.1.722 → 0.1.723

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.722";
1
+ export declare const CLI_VERSION = "0.1.723";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.722";
2
+ export const CLI_VERSION = "0.1.723";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUzE,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAwEnF,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;KACjC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgJD,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAwM/D"}
1
+ {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUzE,OAAO,EAAmB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmEnF,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;KACjC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgJD,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAqM/D"}
@@ -68,11 +68,6 @@ async function maybeInstallProxy(socket, selfDeviceId, token) {
68
68
  socket: socket,
69
69
  selfDeviceId,
70
70
  iceServers,
71
- // Also make this mobile page inspectable by the user's OWN devices: register
72
- // an inspect proxy host on the same socket (gated by MSK fingerprint — only
73
- // the owner's enrolled devices can connect). The socket advertises isHost
74
- // below so a remote desktop Inspector can discover it.
75
- inspectHost: true,
76
71
  });
77
72
  }
78
73
  catch {
@@ -321,10 +316,7 @@ export function bootstrapApp(options) {
321
316
  requests: { ...frameworkRequests, ...appRequests },
322
317
  messages: { ...frameworkMessages, ...appMessages },
323
318
  url: socketUrl,
324
- // inspectHost:true discoverable as an INSPECT host (a desktop Inspector
325
- // connects as the client). Separate from isHost so the phone never appears in
326
- // the uglyNative host-picker. Gated by MSK fingerprint — owner's devices only.
327
- ...(proxyDev ? { getUrlParams: () => ({ token, deviceId: proxyDev, inspectHost: 'true' }) } : {}),
319
+ ...(proxyDev ? { getUrlParams: () => ({ token, deviceId: proxyDev }) } : {}),
328
320
  });
329
321
  // Live session-revocation handling. The server re-verifies the token on every
330
322
  // socket (re)connect and emits an `auth-failed` event when it's no longer
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=host-bundle-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-bundle-entry.d.ts","sourceRoot":"","sources":["../../src/inspect/host-bundle-entry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ // Shell-injected inspect host. The MOBILE browser (Ugly Browser) injects this
2
+ // IIFE into EVERY page it loads — exactly like it injects window.UglyNative —
3
+ // so any page becomes inspectable by the user's own desktop WITHOUT the website
4
+ // cooperating (the Chrome model: the browser enables inspection, not the site).
5
+ //
6
+ // The ugly-app build bundles this to dist/inspect/host-bundle.js. The native
7
+ // shell sets window.__uglyInspectBootstrap (token/deviceId/wsUrl/platform) +
8
+ // must have already exposed window.UglyNative (used for MSK signing +
9
+ // capture.screenshot). It opens a per-page proxy host: registers inspectHost
10
+ // presence on the page's own app worker, answers a remote inspector's WebRTC
11
+ // offer, and dispatches inspect.* to the in-page agent / native screenshot.
12
+ import { createSocket } from '../client/createSocket.js';
13
+ import { installInspectProxyHost } from './proxyHostBootstrap.js';
14
+ const w = window;
15
+ const cfg = w.__uglyInspectBootstrap;
16
+ // Idempotent; needs config + the native bridge (signing + screenshots).
17
+ if (cfg && w.UglyNative && !w.__uglyInspectHostInstalled) {
18
+ w.__uglyInspectHostInstalled = true;
19
+ const native = w.UglyNative;
20
+ const socket = createSocket({
21
+ requests: {},
22
+ messages: {},
23
+ url: cfg.wsUrl,
24
+ // inspectHost:true → discoverable by the owner's desktop Inspector. Gated by
25
+ // MSK fingerprint auth, so only the owner's enrolled devices can connect.
26
+ getUrlParams: () => ({
27
+ token: cfg.token,
28
+ deviceId: cfg.deviceId,
29
+ deviceLabel: cfg.deviceLabel ?? cfg.platform,
30
+ inspectHost: 'true',
31
+ }),
32
+ });
33
+ void socket
34
+ .connect(cfg.token)
35
+ .then(() => installInspectProxyHost({ socket, native, platform: cfg.platform }))
36
+ .catch(() => {
37
+ /* not signed in / worker unreachable — page stays un-inspectable, no error */
38
+ });
39
+ }
40
+ //# sourceMappingURL=host-bundle-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-bundle-entry.js","sourceRoot":"","sources":["../../src/inspect/host-bundle-entry.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,sEAAsE;AACtE,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAiBlE,MAAM,CAAC,GAAG,MAA+B,CAAC;AAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,sBAAsB,CAAC;AAErC,wEAAwE;AACxE,IAAI,GAAG,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC;IACzD,CAAC,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC,KAAK;QACd,6EAA6E;QAC7E,0EAA0E;QAC1E,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ;YAC5C,WAAW,EAAE,MAAM;SACpB,CAAC;KACH,CAAC,CAAC;IACH,KAAK,MAAM;SACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;SAClB,IAAI,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC/E,KAAK,CAAC,GAAG,EAAE;QACV,8EAA8E;IAChF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";(()=>{function Se(e){let t=e.url??"/ws",n=t.startsWith("/")?typeof window<"u"?`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}${t}`:`ws://localhost:${4321}${t}`:t,o=0;function r(){return String(++o)}let c=new Map,s=null,f=!1,g=!1,m=!1,a=0,y=!1,k=!1,l=e.initialFocus??!0,h=null,I="connecting",H=1e3,Y=3e4,T=5,q=1e3,Z=!1,ct=3e4,ee=null,fe=null,at=null,te=null,j=null,ne=[],re=[],b=new Map,x=new Map,U=new Map;function pe(){ee=new Promise((u,i)=>{fe=u,at=i}),ee.catch(()=>{})}pe();function oe(u,i){I=u,typeof window<"u"&&window.dispatchEvent(new CustomEvent("ws-connection-state",{detail:{state:u,...i}}))}function ut(u){for(let{reject:i,timeout:d}of b.values())clearTimeout(d),i(new Error(u));b.clear(),x.clear(),U.clear()}function me(u){for(let[i,d]of b)clearTimeout(d.timeout),d.retry?ye(re,i):(b.delete(i),d.reject(new Error(u?"WebSocket disconnected (idle)":"WebSocket disconnected")))}function ge(u){s.send(JSON.stringify(u))}function ye(u,i){u.length>=q&&(u.shift(),Z||(console.warn(`[socket] queue exceeded ${q} \u2014 dropping oldest message(s)`),Z=!0)),u.push(i)}function W(u){m&&f&&s?.readyState===WebSocket.OPEN?s.send(u):ye(ne,u)}function we(u,i,d=6e4,p=!0){if(typeof u=="object"&&u!==null){W(JSON.stringify(u));return}return new Promise((w,R)=>{let E=r(),S=JSON.stringify({type:u,id:E,data:i}),D=setTimeout(()=>{b.delete(E),R(new Error(`Request timeout: ${u}`))},d);b.set(E,{resolve:w,reject:R,timeout:D,serialized:S,retry:p,timeoutMs:d}),W(S)})}function ke(u,i){W(JSON.stringify({type:u,data:i}))}function he(){X(),l&&(h=setInterval(()=>{f&&l&&ke("ping",{})},ct))}function X(){h&&(clearInterval(h),h=null)}function lt(){for(let[u,i]of N)v(i.type,{...i.params,subId:u}).catch(d=>console.error("[resubscribe]",d))}let N=new Map;function dt(){for(;re.length>0&&s?.readyState===WebSocket.OPEN;){let u=re.shift(),i=b.get(u);i&&(s.send(i.serialized),i.timeoutMs!==null&&(i.timeout=setTimeout(()=>{b.delete(u),i.reject(new Error(`Timeout: retry ${u}`))},i.timeoutMs)))}}function ft(){for(;ne.length>0&&s?.readyState===WebSocket.OPEN;)s.send(ne.shift());dt(),e.buildId&&we("buildId",{}).then(u=>{u!==e.buildId&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("version-mismatch"))}).catch(()=>{}),y&&(lt(),y=!1)}function ie(u,i){typeof window<"u"&&window.dispatchEvent(new CustomEvent(u,{detail:i}))}function pt(u){let i=JSON.parse(u.data,e.messageReviver);switch(i.type){case"ready":m=!0,ft();return;case"authFailed":ie("auth-failed",{});return;case"track":i.subId&&x.get(i.subId)?.(i.data);return;case"frame":i.subId&&U.get(i.subId)?.(i.data);return;case"response":if(i.id){let d=b.get(i.id);d&&(clearTimeout(d.timeout),b.delete(i.id),d.resolve(i.data??i.result))}return;case"pushNotification":ie("push-notification-received",i.data);return;case"server-draining":ie("server-draining",i.data);return;default:{if(i.id&&i.type==="error"){let p=b.get(i.id);p&&(clearTimeout(p.timeout),b.delete(i.id),p.reject(new Error(i.error??"Unknown error")));return}if(i.id){let p=b.get(i.id);if(p){clearTimeout(p.timeout),b.delete(i.id),p.resolve(i.data??i.result);return}}e.onCustomMessage?.(i);let d=c.get(i.type);if(d)for(let p of d)p(i.data)}}}function v(u,i,d=6e4,p=!1){return new Promise((w,R)=>{let E=r(),S=JSON.stringify({id:E,type:u,payload:i}),D=d===null?null:setTimeout(()=>{b.delete(E),R(new Error(`Timeout: ${u}`))},d);b.set(E,{resolve:w,reject:R,timeout:D??setTimeout(()=>{},0),serialized:S,retry:p,timeoutMs:d}),W(S)})}function be(u){u!==l&&(l=u,u?f?he():(a=0,se()):(X(),k=!0))}typeof document<"u"&&(l=document.visibilityState==="visible",document.addEventListener("visibilitychange",()=>{be(document.visibilityState==="visible")}));function se(){if(g)return;g=!0,m=!1;let u=new URL(n,typeof window<"u"?window.location.href:void 0);if(e.getUrlParams)for(let[i,d]of Object.entries(e.getUrlParams()))u.searchParams.set(i,d);s=new WebSocket(u.toString()),s.addEventListener("message",pt),s.addEventListener("open",()=>{g=!1;let i=a>0,d=k;if(f=!0,y=i||d,a=0,Z=!1,k=!1,oe("connected",{wasReconnect:i,wasIdleReconnect:d}),fe?.(),l&&he(),te){let p;j!==null&&b.has(j)?p=j:(p=r(),b.set(p,{resolve:()=>{},reject:()=>{},timeout:setTimeout(()=>b.delete(p),3e4),serialized:"",retry:!1,timeoutMs:3e4})),j=null,ge({id:p,type:"auth",payload:{token:te}})}}),s.addEventListener("close",()=>{if(g=!1,f=!1,X(),!l){k=!0,oe("idle-disconnected"),me(!0);return}oe("reconnecting",{attempt:a+1}),me(!1);let i=Math.min(Y,H*Math.pow(2,Math.min(a,T)));pe(),setTimeout(()=>{a++,se()},i)}),s.addEventListener("error",()=>{})}return se(),{connect(u){te=u;let i=r(),d=new Promise((p,w)=>{b.set(i,{resolve:R=>{let E=R;p({user:E.user,appToken:E.appToken})},reject:w,timeout:setTimeout(()=>{b.delete(i),w(new Error("Auth timeout"))},3e4),serialized:"",retry:!1,timeoutMs:3e4})});return s?.readyState===WebSocket.OPEN?ge({id:i,type:"auth",payload:{token:u}}):j=i,d},request(u,i,d){let p=d?.timeoutMs===void 0?6e4:d.timeoutMs;return v("request",{name:u,input:i},p,d?.retry??!0)},async requestStream(u,i,d,p){let w=await fetch(`/api/${u}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},credentials:"include",body:JSON.stringify({input:i}),...p?.signal?{signal:p.signal}:{}});if(!w.ok||!w.body){let L=await w.json().catch(()=>({}));if(L.error)throw new Error(L.error);return L.result}let R=w.body.getReader(),E=new TextDecoder("utf-8"),S="",D,ve=!1;for(;!ve;){let{value:L,done:mt}=await R.read();if(mt)break;S+=E.decode(L,{stream:!0});let ce;for(;(ce=S.indexOf(`
2
+ `))!==-1;){let Ee=S.slice(0,ce).replace(/\r$/,"");if(S=S.slice(ce+1),!Ee.startsWith("data:"))continue;let Re=Ee.slice(5).trimStart();if(!Re)continue;let O;try{O=JSON.parse(Re)}catch{continue}if(O.type==="__result__"){D=O.result,ve=!0;break}if(O.type==="__error__")throw new Error(O.error??`request ${u} failed`);d(O)}}return D},getDoc(u,i){return v("request",{name:"storeGetDoc",input:{collection:u,id:i}}).then(d=>d.item)},getDocs(u,i,d){return v("request",{name:"storeGetDocs",input:{collection:u,filter:i,...d}}).then(p=>p.items)},getQuery(u,i,d){return v("request",{name:"storeGetQuery",input:{collection:u,query:i,...d}}).then(p=>p.items)},trackDoc(u,i,d){let p=r();return x.set(p,d),N.set(p,{type:"trackDoc",params:{collection:u,id:i}}),v("trackDoc",{collection:u,id:i,subId:p}).catch(w=>{console.error("[trackDoc]",w)}),()=>{x.delete(p),N.delete(p),v("unsubscribe",{subId:p}).catch(()=>{})}},trackDocs(u,i,d,p){let w=r();return x.set(w,d),p&&U.set(w,p),N.set(w,{type:"trackDocs",params:{collection:u,keys:i.keys,filter:i.filter,sort:i.sort,limit:i.limit,skip:i.skip}}),v("trackDocs",{collection:u,keys:i.keys,filter:i.filter,subId:w,sort:i.sort,limit:i.limit,skip:i.skip}).catch(R=>{console.error("[trackDocs]",R)}),()=>{x.delete(w),U.delete(w),N.delete(w),v("unsubscribe",{subId:w}).catch(()=>{})}},find(u,i,d){return v("request",{name:"storeGetDocs",input:{collection:u,filter:i,...d}}).then(p=>p.items)},trackQuery(u,i,d){let p=r();return x.set(p,d),N.set(p,{type:"trackQuery",params:{collection:u,keys:i.keys,filter:i.filter,sort:i.sort,limit:i.limit,skip:i.skip}}),v("trackQuery",{collection:u,keys:i.keys,filter:i.filter,subId:p,sort:i.sort,limit:i.limit,skip:i.skip}).catch(w=>{console.error("[trackQuery]",w)}),()=>{x.delete(p),N.delete(p),v("unsubscribe",{subId:p}).catch(()=>{})}},async uploadFile(u,i){let{uploadUrl:d,resultUrl:p}=await v("request",{name:"uploadUrl",input:{key:i,contentType:u.type}}),w=await fetch(d,{method:"PUT",body:u,headers:{"Content-Type":u.type}});if(!w.ok)throw new Error(`Upload failed: ${w.status} ${w.statusText}`);return p},emit:ke,send:we,on(u,i){let d=c.get(u);return d||(d=new Set,c.set(u,d)),d.add(i),()=>{d.delete(i),d.size===0&&c.delete(u)}},waitForConnection(u=3e4){return f?Promise.resolve():new Promise((i,d)=>{let p=setTimeout(()=>d(new Error("Connection timeout")),u);ee?.then(()=>{clearTimeout(p),i()}).catch(w=>{clearTimeout(p),d(w instanceof Error?w:new Error(String(w)))})})},get connectionState(){return I},setFocused(u){be(u)},disconnect(){ut("Disconnected"),X(),s?.close(),s=null}}}var Zt=new TextEncoder;function z(e){let t=/a=fingerprint:(\S+)\s+([0-9A-Fa-f:]+)/.exec(e||"");return t?`${t[1].toLowerCase()} ${t[2].toUpperCase()}`:null}function Te(e){return e??{}}function Pe(e){let t=e.rtcFactory??(m=>new RTCPeerConnection(m)),n=new Map,o=new Set,r=[];async function c(m){let a=String(m.from??"");if(!a)return;let y=String(m.sdp??""),k=String(m.origin??"");if(e.signer&&!await e.signer.verify("client",z(y)??"",String(m.fpTag??""))){e.socket.emit("rtc:error",{to:a,reason:"fingerprint-auth-failed"});return}try{n.get(a)?.pc.close()}catch{}let l=t({iceServers:e.iceServers??[]}),h={pc:l,dc:null,origin:k};n.set(a,h),l.onicecandidate=T=>{T.candidate&&e.socket.emit("rtc:ice",{to:a,candidate:T.candidate.toJSON()})},l.ondatachannel=T=>{h.dc=T.channel,T.channel.onmessage=q=>{f(h,T.channel,q.data)}},await l.setRemoteDescription({type:"offer",sdp:y});let I=await l.createAnswer();await l.setLocalDescription(I);let H=l.localDescription?.sdp??I.sdp??"",Y=e.signer?await e.signer.sign("host",z(H)??""):void 0;e.socket.emit("rtc:answer",{to:a,sdp:H,fpTag:Y})}async function s(m){let a=n.get(String(m.from??""));if(a)try{await a.pc.addIceCandidate(m.candidate)}catch{}}async function f(m,a,y){let k;try{k=JSON.parse(typeof y=="string"?y:new TextDecoder().decode(y))}catch{return}if(k.t==="req"&&k.id!==void 0)try{let l=await e.onInvoke(String(k.channel),k.payload,m.origin);g(a,{t:"res",id:k.id,ok:!0,result:l})}catch(l){g(a,{t:"res",id:k.id,ok:!1,error:String(l?.message??l)})}else if(k.t==="sub"&&k.id!==void 0)o.add({dc:a,event:String(k.channel??""),id:k.id}),g(a,{t:"res",id:k.id,ok:!0,result:{snapshot:null}});else if(k.t==="unsub"&&k.id!==void 0)for(let l of[...o])l.dc===a&&l.id===k.id&&o.delete(l)}function g(m,a){try{m.readyState==="open"&&m.send(JSON.stringify(a))}catch{}}return r.push(e.socket.on("rtc:offer",m=>{c(Te(m))})),r.push(e.socket.on("rtc:ice",m=>{s(Te(m))})),{stop(){for(let m of r)try{m()}catch{}for(let m of n.values())try{m.pc.close()}catch{}n.clear(),o.clear()},broadcast(m,a){for(let y of o)y.event===m&&g(y.dc,{t:"evt",event:m,data:a})},peerCount:()=>n.size}}function xe(e){return{sign:async(t,n)=>(await e.invoke("proxy.signFingerprint",{role:t,fingerprint:n})).tag,verify:async(t,n,o)=>(await e.invoke("proxy.verifyFingerprint",{role:t,fingerprint:n,tag:o})).ok}}var _=class{constructor(t){this.cap=t}cap;items=[];push(t){this.items.push(t),this.items.length>this.cap&&this.items.splice(0,this.items.length-this.cap)}since(t,n){let o=0,r=this.items.length;for(;o<r;){let c=o+r>>>1;n(this.items[c])<t?o=c+1:r=c}return this.items.slice(o)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var V=class{seq=0;byId=new Map;put(t){let n=`o${++this.seq}`;return this.byId.set(n,t),n}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};function yt(e){return typeof Node<"u"&&typeof e=="object"&&e!==null&&e instanceof Node}function F(e,t){return e.length>t?`${e.slice(0,t)}\u2026`:e}function Ce(e){return Object.getPrototypeOf(e)?.constructor?.name}function P(e,t){switch(typeof e){case"undefined":return{type:"undefined"};case"boolean":return{type:"boolean",value:e};case"bigint":return{type:"bigint",value:`${e}n`,preview:`${e}n`};case"symbol":return{type:"symbol",value:String(e),preview:String(e)};case"string":return{type:"string",value:F(e,1e3)};case"number":return Number.isFinite(e)?{type:"number",value:e}:{type:"number",value:String(e),preview:String(e)};case"function":return{type:"function",className:"Function",preview:`\u0192 ${e.name||"(anonymous)"}()`};case"object":break;default:return{type:"object",preview:String(e)}}if(e===null)return{type:"null"};let n=e;if(yt(e))return{type:"node",className:e.nodeName??"Node",preview:ht(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:vt(e)};if(e instanceof RegExp)return{type:"regexp",className:"RegExp",preview:String(e)};if(e instanceof Error)return{type:"error",className:e.name||"Error",preview:F(`${e.name}: ${e.message}`,100),objectId:t.registry.put(e)};if(bt(e))return{type:"promise",className:"Promise",preview:"Promise",objectId:t.registry.put(e)};if(e instanceof Map)return{type:"map",className:"Map",size:e.size,objectId:t.registry.put(e),preview:`Map(${e.size})`,entries:Me(e,t)};if(e instanceof Set)return{type:"set",className:"Set",size:e.size,objectId:t.registry.put(e),preview:`Set(${e.size})`,entries:De(e,t)};if(Array.isArray(e))return{type:"array",className:"Array",size:e.length,objectId:t.registry.put(e),preview:`Array(${e.length})`,entries:Ne(e,t)};let o=Object.keys(n);return{type:"object",className:Ce(n)??"Object",size:o.length,objectId:t.registry.put(n),preview:wt(n,o),entries:ae(n,o,t)}}function Ie(e,t){if(e instanceof Map)return Me(e,t,1/0).map(n=>n.value);if(e instanceof Set)return De(e,t,1/0).map(n=>n.value);if(Array.isArray(e))return Ne(e,t,1/0).map(n=>n.value);if(e instanceof Error)return ae({name:e.name,message:e.message,stack:e.stack},["name","message","stack"],t,1/0).map(n=>n.value);if(typeof e=="object"&&e!==null){let n=Object.keys(e);return ae(e,n,t,1/0).map(o=>o.value)}return[]}function Ne(e,t,n=5){let o=[];for(let r=0;r<e.length&&r<n;r++)o.push({key:String(r),value:P(e[r],t)});return o}function ae(e,t,n,o=5){let r=[];for(let c=0;c<t.length&&c<o;c++){let s=t[c],f;try{f=e[s]}catch{f="(getter threw)"}r.push({key:s,value:P(f,n)})}return r}function Me(e,t,n=5){let o=[],r=0;for(let[c,s]of e){if(r++>=n)break;o.push({key:P(c,t),value:P(s,t)})}return o}function De(e,t,n=5){let o=[],r=0;for(let c of e){if(r++>=n)break;o.push({value:P(c,t)})}return o}function wt(e,t){let n=t.slice(0,5).map(r=>{let c;try{c=e[r]}catch{c="\u2026"}return`${r}: ${kt(c)}`}),o=t.length>5?", \u2026":"";return F(`{${n.join(", ")}${o}}`,100)}function kt(e){let t=typeof e;return t==="string"?`"${F(e,20)}"`:t==="object"&&e!==null?Array.isArray(e)?`Array(${e.length})`:Ce(e)??"Object":String(e)}function ht(e){let t=e;if(t.nodeType===1){let n=(t.nodeName??"").toLowerCase(),o=t.id?`#${t.id}`:"",r=typeof t.className=="string"&&t.className?`.${t.className.trim().split(/\s+/).join(".")}`:"";return F(`<${n}${o}${r}>`,100)}return t.nodeName??"Node"}function bt(e){return typeof e?.then=="function"}function vt(e){try{return e.toISOString()}catch{return"Invalid Date"}}var Oe=["log","info","warn","error","debug"];function Ae(e){if(typeof console>"u")return()=>{};let t=0,n={};for(let s of Oe){let f=console[s];typeof f=="function"&&(n[s]=f,console[s]=(...g)=>{try{c(s,g)}catch{}f.apply(console,g)})}let o=s=>{c("error",[s.message],{stack:M(s.error?.stack),source:{url:s.filename||"",line:s.lineno||0,col:s.colno||0}})},r=s=>{let f=s.reason;c("error",[`Unhandled rejection: ${f?.message??String(s.reason)}`],{stack:M(f?.stack)})};typeof window<"u"&&(window.addEventListener("error",o),window.addEventListener("unhandledrejection",r));function c(s,f,g){let m=f.map(k=>P(k,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=g?.stack??M(new Error().stack,1),y={seq:++t,ts:e.now(),level:s,args:m,text:Et(f),stack:a.length?a:void 0,source:g?.source??a[0]?{url:a[0].url,line:a[0].line,col:a[0].col}:void 0};e.buffer.push(y),e.onEntry?.(y)}return()=>{for(let s of Oe){let f=n[s];f&&(console[s]=f)}typeof window<"u"&&(window.removeEventListener("error",o),window.removeEventListener("unhandledrejection",r))}}function Et(e){return e.map(t=>{if(typeof t=="string")return t;if(t instanceof Error)return`${t.name}: ${t.message}`;try{return JSON.stringify(t)}catch{return String(t)}}).join(" ").slice(0,2e3)}function M(e,t=0){if(!e)return[];let n=[],o=e.split(`
3
+ `);for(let r of o){let c=r.trim(),s=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(c)||/^at\s+(.*?):(\d+):(\d+)$/.exec(c);if(s){s.length===5?n.push({functionName:s[1],url:s[2],line:+s[3],col:+s[4]}):n.push({functionName:"(anonymous)",url:s[1],line:+s[2],col:+s[3]});continue}s=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(c),s&&n.push({functionName:s[1]||"(anonymous)",url:s[2],line:+s[3],col:+s[4]})}return n.slice(t)}function _e(e,t=40,n=Date.now){let o=typeof document<"u"&&document.documentElement?ue(document.documentElement,e,t,0):Pt();return{documentUrl:typeof location<"u"?location.href:"",capturedAt:n(),root:o}}function ue(e,t,n,o){let r={nodeId:t.idFor(e),nodeType:e.nodeType,nodeName:e.nodeName};if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE){let a=(e.textContent??"").trim();return a&&(r.textContent=a.slice(0,200)),r}if(e.nodeType!==Node.ELEMENT_NODE)return r;let c=e;if(r.attributes=St(c),r.rect=Tt(c),o>=n)return r;let s=c.shadowRoot;s&&(r.shadowRoots=Array.from(s.childNodes).filter(Le).map(a=>ue(a,t,n,o+1)));let f=[],g=je(c,"before");g&&f.push(g);for(let a of Array.from(c.childNodes))Le(a)&&f.push(ue(a,t,n,o+1));let m=je(c,"after");return m&&f.push(m),f.length&&(r.children=f),r}function je(e,t){if(typeof getComputedStyle>"u")return;let n;try{n=getComputedStyle(e,`::${t}`).content}catch{return}if(!(!n||n==="none"||n==="normal"))return{nodeId:`${Rt(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function Rt(e){return e.__inspectPseudoBase??e.tagName}function Le(e){return e.nodeType===Node.TEXT_NODE?!!(e.textContent??"").trim():e.nodeType===Node.ELEMENT_NODE||e.nodeType===Node.COMMENT_NODE}function St(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Tt(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function Pt(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function Fe(e,t){let n=xt(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let o=getComputedStyle(n),r=jt(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:At(n),computedStyles:Ct(o),matchedRules:It(n),boxModel:Mt(n,o,r),eventListeners:Dt(n),accessibility:Ot(n),rect:r}}function xt(e,t){if(t.nodeId){let n=e.get(t.nodeId);return n?.nodeType===1?n:null}return t.selector&&typeof document<"u"?document.querySelector(t.selector):null}function Ct(e){let t={};for(let n=0;n<e.length;n++){let o=e.item(n);t[o]=e.getPropertyValue(o)}return t}function It(e){let t=[];if(typeof document>"u")return t;for(let n of Array.from(document.styleSheets)){let o;try{o=n.cssRules}catch{continue}let r=n.href??void 0;for(let c of Array.from(o)){if(!(c instanceof CSSStyleRule))continue;let s=!1;try{s=e.matches(c.selectorText)}catch{s=!1}s&&t.push({selector:c.selectorText,source:r?{url:r,line:0,col:0}:void 0,props:Nt(c.style)})}}return t}function Nt(e){let t={};for(let n=0;n<e.length;n++){let o=e.item(n);t[o]=e.getPropertyValue(o)}return t}function Mt(e,t,n){let o=(r,c)=>({top:K(t.getPropertyValue(`${r}-top${c}`)),right:K(t.getPropertyValue(`${r}-right${c}`)),bottom:K(t.getPropertyValue(`${r}-bottom${c}`)),left:K(t.getPropertyValue(`${r}-left${c}`))});return{content:n,padding:o("padding",""),border:o("border","-width"),margin:o("margin","")}}function Dt(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let o=n(e),r=[];for(let[c,s]of Object.entries(o))for(let f of s)r.push({type:c,useCapture:f.useCapture,passive:f.passive});return r}catch{return[]}}function Ot(e){let t={};for(let r of Array.from(e.attributes))r.name.startsWith("aria-")&&(t[r.name]=r.value);let n=e.getAttribute("role")??void 0,o=e.getAttribute("aria-label")??e.title??(e.textContent??"").trim().slice(0,80)??void 0;return{role:n,name:o||void 0,properties:t}}function At(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function jt(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function K(e){let t=parseFloat(e);return Number.isFinite(t)?t:0}async function $e(e,t,n){let o=t.now();try{let r=Lt(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&_t(r)&&(r=await r),t.setLast(r),{ok:!0,value:P(r,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-o}}catch(r){let c=r;return{ok:!1,exception:{text:`${c?.name??"Error"}: ${c?.message??String(r)}`,stack:M(c?.stack)},tookMs:t.now()-o}}}function Lt(e,t){let n=Object.keys(t);if(n.length===0)return(0,eval)(e);let o=new Function(...n,`return (${e});`);try{return o(...n.map(r=>t[r]))}catch(r){if(r instanceof SyntaxError)return new Function(...n,e)(...n.map(s=>t[s]));throw r}}function _t(e){return typeof e?.then=="function"}var J=64*1024;function qe(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,o=window.fetch?.bind(window);o&&(window.fetch=async(g,m)=>{let a=e.now(),y=(m?.method||(g instanceof Request?g.method:"GET")).toUpperCase(),k=g instanceof Request?g.url:String(g),l={id:n(),ts:a,method:y,url:k,resourceType:"fetch",requestHeaders:Be(m?.headers??(g instanceof Request?g.headers:void 0)),requestBody:He(m?.body),timing:{startMs:a,durationMs:0}};try{let h=await o(g,m);return l.status=h.status,l.responseHeaders=Be(h.headers),l.timing.durationMs=e.now()-a,l.fromCache=h.fromCache,await $t(h,l),f(l),h}catch(h){throw l.failed=!0,l.timing.durationMs=e.now()-a,l.responseBody={kind:"text",data:String(h?.message??h)},f(l),h}});let r=window.XMLHttpRequest,c=r?.prototype.open,s=r?.prototype.send;r&&c&&s&&(r.prototype.open=function(m,a,...y){return this.__inspect={method:m.toUpperCase(),url:a,start:0},c.apply(this,[m,a,...y])},r.prototype.send=function(m){let a=this.__inspect;return a&&(a.start=e.now(),this.addEventListener("loadend",()=>{let y={id:n(),ts:a.start,method:a.method,url:a.url,status:this.status,resourceType:"xhr",requestHeaders:{},responseHeaders:Ft(this.getAllResponseHeaders()),requestBody:He(m),responseBody:Bt(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};f(y)})),s.apply(this,[m])});function f(g){e.buffer.push(g),e.onEntry?.(g)}return()=>{o&&(window.fetch=o),r&&c&&(r.prototype.open=c),r&&s&&(r.prototype.send=s)}}function Be(e){let t={};if(!e)return t;if(typeof Headers<"u"&&e instanceof Headers)e.forEach((n,o)=>t[o]=n);else if(Array.isArray(e))for(let[n,o]of e)t[n]=o;else Object.assign(t,e);return t}function Ft(e){let t={};for(let n of e.split(`\r
4
+ `)){let o=n.indexOf(":");o>0&&(t[n.slice(0,o).trim().toLowerCase()]=n.slice(o+1).trim())}return t}function He(e){if(e!=null)return typeof e=="string"?e.slice(0,J):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,J):"(binary)"}async function $t(e,t){let n=e.headers.get("content-type")||"";if(!/json|text|javascript|xml|html|csv/i.test(n)){t.responseBody={kind:"omitted"};return}try{let o=await e.clone().text();t.sizeBytes=o.length;let r=/json/i.test(n)?"json":"text";t.responseBody={kind:r,data:o.slice(0,J)}}catch{t.responseBody={kind:"omitted"}}}function Bt(e){try{if(e.responseType===""||e.responseType==="text"){let t=e.responseText||"",n=e.getResponseHeader("content-type")||"";return{kind:/json/i.test(n)?"json":"text",data:t.slice(0,J)}}}catch{}return{kind:"omitted"}}var Q=class{seq=0;byId=new Map;idOf=new WeakMap;idFor(t){let n=this.idOf.get(t);if(n)return this.byId.set(n,t),n;let o=`n${++this.seq}`;return this.idOf.set(t,o),this.byId.set(o,t),o}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};function G(e){let t=e.getAttribute?.("data-id");if(t)return`[data-id=${t}]`;let n=e.getAttribute?.("role"),o=e.tagName.toLowerCase();return e.id?`${o}#${e.id}`:n?`${o}[role=${n}]`:o}var Ue="__ugly_inspect_overlay__";function We(e){if(typeof document>"u")return{setEnabled:()=>{},highlight:()=>{},destroy:()=>{}};let t=!1,n=null;function o(){if(n)return n;let a=document.createElement("div");return a.id=Ue,Object.assign(a.style,{position:"fixed",pointerEvents:"none",zIndex:"2147483647",background:"rgba(64,128,255,0.28)",border:"1px solid rgba(64,128,255,0.9)",boxSizing:"border-box",top:"0",left:"0",display:"none"}),document.documentElement.appendChild(a),n=a,a}function r(a){let y=o();if(!a){y.style.display="none";return}Object.assign(y.style,{display:"block",transform:`translate(${a.x}px, ${a.y}px)`,width:`${a.w}px`,height:`${a.h}px`})}let c=a=>{let y=f(a.clientX,a.clientY);y&&r(le(y))},s=a=>{let y=f(a.clientX,a.clientY);y&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(y),e.onPicked({nodeId:e.reg.idFor(y),selector:G(y),rect:le(y)}),g(!1))};function f(a,y){n&&(n.style.display="none");let k=document.elementFromPoint(a,y);return k&&k.id!==Ue?k:null}function g(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",c,!0),window.addEventListener("pointerdown",s,!0)):(window.removeEventListener("pointermove",c,!0),window.removeEventListener("pointerdown",s,!0),r(null)))}function m(a){if(!a){r(null);return}let y=e.reg.get(a);y?.nodeType===1&&r(le(y))}return{setEnabled:g,highlight:m,destroy:()=>{g(!1),n?.remove(),n=null}}}function le(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var Ve=4;async function Ke(e,t){let n=t(),o=[];await new Promise(c=>{let s=()=>{o.push(Ht()),t()-n>=e?c():Xe(s)};Xe(s)});let r=t();return{startTime:n,endTime:r,durationMs:r-n,sampleCount:o.length,precise:!1,root:qt(o)}}function Xe(e){typeof setTimeout<"u"?setTimeout(e,Ve):e()}function Ht(){return M(new Error().stack,1).filter(t=>!/profile\.(js|ts)/.test(t.url)).map(t=>({url:t.url,line:t.line,col:t.col,functionName:t.functionName})).reverse()}function qt(e){let t=0,n=ze(t++,"(root)");for(let o of e){let r=n;r.hitCount++;for(let c of o){let s=c,f=`${s.functionName??"(anonymous)"}@${s.url}:${s.line}`,g=r.childMap.get(f);g||(g=ze(t++,s.functionName??"(anonymous)",{url:s.url,line:s.line,col:s.col}),r.childMap.set(f,g),r.children.push(g)),g.hitCount++,r=g}}return Je(n,e.length),Qe(n)}function ze(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function Je(e,t){let n=0;for(let o of e.children)n+=Je(o,t);return e.totalTimeMs=e.hitCount*Ve,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function Qe(e){return{id:e.id,functionName:e.functionName,source:e.source,selfTimeMs:e.selfTimeMs,totalTimeMs:e.totalTimeMs,hitCount:e.hitCount,children:e.children.map(t=>Qe(t))}}async function Ze(){return{localStorage:Ye(Ge(()=>localStorage)),sessionStorage:Ye(Ge(()=>sessionStorage)),cookies:Ut(),indexedDB:await Wt()}}function Ge(e){try{return e()}catch{return null}}function Ye(e){let t={};if(!e)return t;for(let n=0;n<e.length;n++){let o=e.key(n);o!=null&&(t[o]=e.getItem(o)??"")}return t}function Ut(){if(typeof document>"u"||!document.cookie)return[];let e=typeof location<"u"?location.hostname:"";return document.cookie.split("; ").filter(Boolean).map(t=>{let n=t.indexOf("="),o=n>=0?t.slice(0,n):t,r=n>=0?t.slice(n+1):"";return{name:o,value:r,domain:e,path:"/"}})}async function Wt(){if(typeof indexedDB>"u"||typeof indexedDB.databases!="function")return[];try{let e=await indexedDB.databases(),t=[];for(let n of e)n.name&&t.push({name:n.name,stores:await Xt(n.name)});return t}catch{return[]}}function Xt(e){return new Promise(t=>{try{let n=indexedDB.open(e);n.onsuccess=()=>{let o=n.result,r=Array.from(o.objectStoreNames);o.close(),t(r)},n.onerror=()=>t([])}catch{t([])}})}function et(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:de()}),stop:()=>{}};o("largest-contentful-paint",r=>{let c=r[r.length-1];if(!c)return;let s=c.element;t.lcp={valueMs:c.startTime,element:s?{nodeId:e.nodeIdFor(s),selector:G(s),rect:zt(s)}:void 0}}),o("paint",r=>{for(let c of r)c.name==="first-contentful-paint"&&(t.fcp=c.startTime)}),o("layout-shift",r=>{let c=t.cls??0;for(let s of r)s.hadRecentInput||(c+=s.value);t.cls=c}),o("event",r=>{let c=t.inp??0;for(let s of r){let f=s.duration;f>c&&(c=f)}t.inp=c},{durationThreshold:40}),o("longtask",r=>{for(let c of r)t.longTasks.push({ts:e.now(),durationMs:c.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function o(r,c,s){try{let f=new PerformanceObserver(g=>c(g.getEntries()));f.observe({type:r,buffered:!0,...s??{}}),n.push(f)}catch{}}return{read:()=>({...t,longTasks:t.longTasks.slice(),navigation:de(),ttfb:t.ttfb??de()?.ttfbMs}),stop:()=>n.forEach(r=>r.disconnect())}}function de(){if(typeof performance>"u"||!performance.getEntriesByType)return;let e=performance.getEntriesByType("navigation")[0];if(e)return{ttfbMs:e.responseStart,domContentLoadedMs:e.domContentLoadedEventEnd,loadEventMs:e.loadEventEnd,domInteractiveMs:e.domInteractive,transferSizeBytes:e.transferSize}}function zt(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var tt=1e3;function A(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function Vt(e={}){let t=new V,n=new Q,o=l=>n.idFor(l),r=new _(tt),c=new _(tt),s=null,f,g=Ae({buffer:r,registry:t,nodeIdFor:o,onEntry:l=>e.onConsole?.(l),now:A}),m=qe({buffer:c,onEntry:l=>e.onNetwork?.(l),now:A}),a=et({nodeIdFor:o,now:A}),y=We({reg:n,onPicked:l=>e.onPicked?.(l),setPickedNode:l=>s=l});return{meta(){return{url:typeof location<"u"?location.href:"",title:typeof document<"u"?document.title:"",isUglyApp:typeof window<"u"&&"__uglyInspect"in window,viewport:{w:typeof window<"u"?window.innerWidth:0,h:typeof window<"u"?window.innerHeight:0,dpr:typeof window<"u"&&window.devicePixelRatio||1}}},consoleBuffer:l=>l==null?r.all():r.all().filter(h=>h.seq>l),networkBuffer:l=>l==null?c.all():c.since(l,h=>h.ts),evaluate:(l,h)=>$e(l,{registry:t,nodeIdFor:o,now:A,getPicked:()=>s,getLast:()=>f,setLast:I=>f=I},h),expand:l=>({entries:Ie(t.get(l),{registry:t,nodeIdFor:o})}),domCapture:l=>_e(n,l,A),element:l=>Fe(n,l),highlight:l=>y.highlight(l),setPicker:l=>y.setEnabled(l),vitals:()=>a.read(),profile:l=>Ke(l,A),storage:()=>Ze(),reset:()=>{t.clear(),n.clear(),r.clear(),c.clear(),s=null,f=void 0},stop:()=>{g(),m(),a.stop(),y.destroy()}}}function nt(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=Vt(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}var Kt=new Set(["inspect.screenshot"]);function rt(e,t,n){return{id:e,url:n.url,title:n.title,viewport:n.viewport,platform:t,isUglyApp:n.isUglyApp}}async function ot(e,t,n={}){switch(t){case"inspect.eval":return e.evaluate(String(n.expression??""),{awaitPromise:n.awaitPromise,replMode:n.replMode});case"inspect.expand":return e.expand(String(n.objectId??""));case"inspect.console.buffer":return{entries:e.consoleBuffer(n.sinceSeq)};case"inspect.network.buffer":return{entries:e.networkBuffer(n.sinceTs)};case"inspect.dom.capture":return e.domCapture(n.maxDepth);case"inspect.element":return e.element({nodeId:n.nodeId,selector:n.selector});case"inspect.dom.highlight":e.highlight(n.nodeId??null);return;case"inspect.picker.set":e.setPicker(!!n.enabled);return;case"inspect.vitals":return e.vitals();case"inspect.profile":return e.profile(Number(n.durationMs??1e3));case"inspect.storage":return e.storage();default:throw Kt.has(t)?new Error(`inspect: ${t} is host-serviced, not an agent method`):new Error(`inspect: unknown channel ${t}`)}}var $="self";function it(e){let t=nt({onConsole:n=>e.onEvent?.(`inspect.console:${$}`,n),onNetwork:n=>e.onEvent?.(`inspect.network:${$}`,n),onPicked:n=>e.onEvent?.(`inspect.picked:${$}`,n)});return{async dispatch(n,o={}){if(n==="inspect.listTargets")return{targets:[rt($,e.platform,t.meta())]};if(n==="inspect.screenshot"){if(!e.screenshot)throw new Error("inspect.screenshot: no native capture on this shell");return e.screenshot({...o,targetId:$})}return ot(t,n,o)},stop(){t.stop()}}}function Jt(e){return async()=>{let t=await e.invoke("capture.screenshot",void 0),n=typeof window<"u"?window.innerWidth:0,o=typeof window<"u"?window.innerHeight:0,r=typeof window<"u"&&window.devicePixelRatio||1;return{base64:t,width:n,height:o,dpr:r,format:"png"}}}function st(e){let t=e.platform??e.native?.platform??"web",n=e.signer??(e.native?xe(e.native):void 0),o=e.screenshot??(e.native?Jt(e.native):void 0),r={},c=it({platform:t,screenshot:o,onEvent:(s,f)=>r.host?.broadcast(s,f)});return r.host=Pe({socket:e.socket,signer:n,iceServers:e.iceServers,rtcFactory:e.rtcFactory,onInvoke:(s,f)=>c.dispatch(s,f??{})}),{stop(){r.host?.stop(),c.stop()},peerCount:()=>r.host?.peerCount()??0}}var B=window,C=B.__uglyInspectBootstrap;if(C&&B.UglyNative&&!B.__uglyInspectHostInstalled){B.__uglyInspectHostInstalled=!0;let e=B.UglyNative,t=Se({requests:{},messages:{},url:C.wsUrl,getUrlParams:()=>({token:C.token,deviceId:C.deviceId,deviceLabel:C.deviceLabel??C.platform,inspectHost:"true"})});t.connect(C.token).then(()=>st({socket:t,native:e,platform:C.platform})).catch(()=>{})}})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.722",
3
+ "version": "0.1.723",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -53,6 +53,7 @@
53
53
  "./inspect": "./dist/inspect/index.js",
54
54
  "./inspect/agent": "./dist/inspect/agent/install.js",
55
55
  "./inspect/agent-bundle": "./dist/inspect/agent-bundle.js",
56
+ "./inspect/host-bundle": "./dist/inspect/host-bundle.js",
56
57
  "./inspect/ui": "./dist/inspect/ui/index.js"
57
58
  },
58
59
  "bin": {
@@ -60,7 +61,7 @@
60
61
  },
61
62
  "scripts": {
62
63
  "prebuild": "node -e \"const p=JSON.parse(require('fs').readFileSync('package.json','utf8'));require('fs').writeFileSync('src/cli/version.ts','// Auto-generated by prebuild — do not edit manually\\nexport const CLI_VERSION = '+JSON.stringify(p.version)+';\\n');\" && rm -rf dist",
63
- "build": "tsc && chmod +x dist/cli/index.js && cp src/markdown/client/*.css dist/markdown/client/ && mkdir -p dist/cli/publish/recipes && cp -R src/cli/publish/recipes/. dist/cli/publish/recipes/ && esbuild src/inspect/agent/bundle-entry.ts --bundle --format=iife --platform=browser --minify --outfile=dist/inspect/agent-bundle.js",
64
+ "build": "tsc && chmod +x dist/cli/index.js && cp src/markdown/client/*.css dist/markdown/client/ && mkdir -p dist/cli/publish/recipes && cp -R src/cli/publish/recipes/. dist/cli/publish/recipes/ && esbuild src/inspect/agent/bundle-entry.ts --bundle --format=iife --platform=browser --minify --outfile=dist/inspect/agent-bundle.js && esbuild src/inspect/host-bundle-entry.ts --bundle --format=iife --platform=browser --minify --outfile=dist/inspect/host-bundle.js",
64
65
  "test": "vitest run",
65
66
  "test:e2e": "E2E=1 vitest run tests/cli/e2e-integration.test.ts",
66
67
  "test:e2e:full": "npx tsx tests/e2e/full-e2e.ts",
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.722";
2
+ export const CLI_VERSION = "0.1.723";
@@ -71,11 +71,6 @@ async function maybeInstallProxy(
71
71
  socket: socket as ProxySocket,
72
72
  selfDeviceId,
73
73
  iceServers,
74
- // Also make this mobile page inspectable by the user's OWN devices: register
75
- // an inspect proxy host on the same socket (gated by MSK fingerprint — only
76
- // the owner's enrolled devices can connect). The socket advertises isHost
77
- // below so a remote desktop Inspector can discover it.
78
- inspectHost: true,
79
74
  });
80
75
  } catch {
81
76
  /* proxy unavailable → desktop-cap calls surface NativeUnavailableError locally */
@@ -406,10 +401,7 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
406
401
  requests: { ...frameworkRequests, ...appRequests },
407
402
  messages: { ...frameworkMessages, ...appMessages },
408
403
  url: socketUrl,
409
- // inspectHost:true discoverable as an INSPECT host (a desktop Inspector
410
- // connects as the client). Separate from isHost so the phone never appears in
411
- // the uglyNative host-picker. Gated by MSK fingerprint — owner's devices only.
412
- ...(proxyDev ? { getUrlParams: () => ({ token, deviceId: proxyDev, inspectHost: 'true' }) } : {}),
404
+ ...(proxyDev ? { getUrlParams: () => ({ token, deviceId: proxyDev }) } : {}),
413
405
  });
414
406
 
415
407
  // Live session-revocation handling. The server re-verifies the token on every
@@ -0,0 +1,59 @@
1
+ // Shell-injected inspect host. The MOBILE browser (Ugly Browser) injects this
2
+ // IIFE into EVERY page it loads — exactly like it injects window.UglyNative —
3
+ // so any page becomes inspectable by the user's own desktop WITHOUT the website
4
+ // cooperating (the Chrome model: the browser enables inspection, not the site).
5
+ //
6
+ // The ugly-app build bundles this to dist/inspect/host-bundle.js. The native
7
+ // shell sets window.__uglyInspectBootstrap (token/deviceId/wsUrl/platform) +
8
+ // must have already exposed window.UglyNative (used for MSK signing +
9
+ // capture.screenshot). It opens a per-page proxy host: registers inspectHost
10
+ // presence on the page's own app worker, answers a remote inspector's WebRTC
11
+ // offer, and dispatches inspect.* to the in-page agent / native screenshot.
12
+
13
+ import { createSocket } from '../client/createSocket.js';
14
+ import type { UglyNative } from '../native/protocol.js';
15
+ import type { InspectPlatform } from './protocol.js';
16
+ import { installInspectProxyHost } from './proxyHostBootstrap.js';
17
+
18
+ interface InspectBootstrap {
19
+ token: string;
20
+ deviceId: string;
21
+ deviceLabel?: string;
22
+ /** wss URL of the page's app worker (so presence lands on its SessionDO). */
23
+ wsUrl: string;
24
+ platform: InspectPlatform;
25
+ }
26
+
27
+ interface HostWindow extends Window {
28
+ __uglyInspectBootstrap?: InspectBootstrap;
29
+ __uglyInspectHostInstalled?: boolean;
30
+ UglyNative?: UglyNative;
31
+ }
32
+
33
+ const w = window as unknown as HostWindow;
34
+ const cfg = w.__uglyInspectBootstrap;
35
+
36
+ // Idempotent; needs config + the native bridge (signing + screenshots).
37
+ if (cfg && w.UglyNative && !w.__uglyInspectHostInstalled) {
38
+ w.__uglyInspectHostInstalled = true;
39
+ const native = w.UglyNative;
40
+ const socket = createSocket({
41
+ requests: {},
42
+ messages: {},
43
+ url: cfg.wsUrl,
44
+ // inspectHost:true → discoverable by the owner's desktop Inspector. Gated by
45
+ // MSK fingerprint auth, so only the owner's enrolled devices can connect.
46
+ getUrlParams: () => ({
47
+ token: cfg.token,
48
+ deviceId: cfg.deviceId,
49
+ deviceLabel: cfg.deviceLabel ?? cfg.platform,
50
+ inspectHost: 'true',
51
+ }),
52
+ });
53
+ void socket
54
+ .connect(cfg.token)
55
+ .then(() => installInspectProxyHost({ socket, native, platform: cfg.platform }))
56
+ .catch(() => {
57
+ /* not signed in / worker unreachable — page stays un-inspectable, no error */
58
+ });
59
+ }