ugly-app 0.1.720 → 0.1.721

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.720";
1
+ export declare const CLI_VERSION = "0.1.721";
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.720";
2
+ export const CLI_VERSION = "0.1.721";
3
3
  //# sourceMappingURL=version.js.map
@@ -24,7 +24,7 @@ export interface StackFrame {
24
24
  line: number;
25
25
  col: number;
26
26
  }
27
- export type InspectPlatform = 'desktop' | 'ios' | 'android';
27
+ export type InspectPlatform = 'desktop' | 'ios' | 'android' | 'web';
28
28
  export interface InspectTarget {
29
29
  /** Stable per-webview id (the shell's tabId). */
30
30
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/inspect/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/inspect/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
- import type { ProxySocket } from '../native/proxyClient.js';
1
+ import { type ProxySocket } from '../native/proxyClient.js';
2
2
  import type { ProxySigner } from '../native/proxyCrypto.js';
3
+ import type { UglyNative } from '../native/protocol.js';
3
4
  import type { InspectPlatform, Screenshot, ScreenshotRequest } from './protocol.js';
4
5
  export interface InspectProxyHostOpts {
5
6
  /** App Socket registered as a host (isHost:true in its presence getUrlParams). */
6
7
  socket: ProxySocket;
8
+ /** When set, `signer`, `screenshot`, and `platform` are derived from it (the
9
+ * recommended mobile/web path — signer = nativeSigner, screenshot = the
10
+ * native capture.screenshot bridge). Explicit fields below still win. */
11
+ native?: Pick<UglyNative, 'invoke' | 'platform'>;
7
12
  /** Verify the inspector's offer + sign our answer (MSK-bound). nativeSigner on mobile. */
8
13
  signer?: ProxySigner;
9
- platform: InspectPlatform;
14
+ platform?: InspectPlatform;
10
15
  /** Native screenshot delegate (WKWebView.takeSnapshot / Android PixelCopy via capture.screenshot). */
11
16
  screenshot?: (req: ScreenshotRequest) => Promise<Screenshot>;
12
17
  iceServers?: RTCIceServer[];
@@ -1 +1 @@
1
- {"version":3,"file":"proxyHostBootstrap.d.ts","sourceRoot":"","sources":["../../src/inspect/proxyHostBootstrap.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,MAAM,EAAE,WAAW,CAAC;IACpB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;IAC1B,sGAAsG;IACtG,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,iBAAiB,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,iCAAiC;IACjC,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CAuBpF"}
1
+ {"version":3,"file":"proxyHostBootstrap.d.ts","sourceRoot":"","sources":["../../src/inspect/proxyHostBootstrap.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,MAAM,EAAE,WAAW,CAAC;IACpB;;8EAE0E;IAC1E,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IACjD,0FAA0F;IAC1F,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,sGAAsG;IACtG,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,iBAAiB,CAAC;CAC9D;AAaD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,IAAI,CAAC;IACb,iCAAiC;IACjC,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CA2BpF"}
@@ -8,19 +8,33 @@
8
8
  // storage), and a native screenshot delegate (capture.screenshot). Live
9
9
  // console/network/picked events fan out to subscribed inspectors via broadcast.
10
10
  import { createProxyHost } from '../native/proxyHost.js';
11
+ import { nativeSigner } from '../native/proxyClient.js';
11
12
  import { createSelfInspectHost } from './selfHost.js';
13
+ /** Build a screenshot delegate from the native capture.screenshot bridge. */
14
+ function nativeScreenshot(native) {
15
+ return async () => {
16
+ const base64 = await native.invoke('capture.screenshot', undefined);
17
+ const w = typeof window !== 'undefined' ? window.innerWidth : 0;
18
+ const h = typeof window !== 'undefined' ? window.innerHeight : 0;
19
+ const dpr = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1;
20
+ return { base64, width: w, height: h, dpr, format: 'png' };
21
+ };
22
+ }
12
23
  export function installInspectProxyHost(opts) {
24
+ const platform = opts.platform ?? opts.native?.platform ?? 'web';
25
+ const signer = opts.signer ?? (opts.native ? nativeSigner(opts.native) : undefined);
26
+ const screenshot = opts.screenshot ?? (opts.native ? nativeScreenshot(opts.native) : undefined);
13
27
  // Holder so the self-host's onEvent closure can reach the host created after it.
14
28
  const ref = {};
15
29
  const self = createSelfInspectHost({
16
- platform: opts.platform,
17
- screenshot: opts.screenshot,
30
+ platform,
31
+ screenshot,
18
32
  // Live agent events → evt frames to every subscribed inspector.
19
33
  onEvent: (event, data) => ref.host?.broadcast(event, data),
20
34
  });
21
35
  ref.host = createProxyHost({
22
36
  socket: opts.socket,
23
- signer: opts.signer,
37
+ signer,
24
38
  iceServers: opts.iceServers,
25
39
  rtcFactory: opts.rtcFactory,
26
40
  onInvoke: (channel, payload) => self.dispatch(channel, (payload ?? {})),
@@ -1 +1 @@
1
- {"version":3,"file":"proxyHostBootstrap.js","sourceRoot":"","sources":["../../src/inspect/proxyHostBootstrap.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,yEAAyE;AACzE,wEAAwE;AACxE,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAqBtD,MAAM,UAAU,uBAAuB,CAAC,IAA0B;IAChE,iFAAiF;IACjF,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,qBAAqB,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,gEAAgE;QAChE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;KACnG,CAAC,CAAC;IACH,OAAO;QACL,IAAI;YACF,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;KAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"proxyHostBootstrap.js","sourceRoot":"","sources":["../../src/inspect/proxyHostBootstrap.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,gFAAgF;AAChF,yEAAyE;AACzE,wEAAwE;AACxE,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAkB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAmBtD,6EAA6E;AAC7E,SAAS,gBAAgB,CAAC,MAAkC;IAC1D,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,uBAAuB,CAAC,IAA0B;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhG,iFAAiF;IACjF,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,qBAAqB,CAAC;QACjC,QAAQ;QACR,UAAU;QACV,gEAAgE;QAChE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM;QACN,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;KACnG,CAAC,CAAC;IACH,OAAO;QACL,IAAI;YACF,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;KAC5C,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { UglyNative } from './protocol.js';
2
2
  import { type ProxyClient, type ProxySocket, type RTCFactory } from './proxyClient.js';
3
+ import type { InspectPlatform } from '../inspect/protocol.js';
3
4
  /** Namespaces that require a desktop host (RCE-grade / filesystem / long-running tasks). */
4
5
  export declare const DESKTOP_NAMESPACES: ReadonlySet<string>;
5
6
  export declare function isDesktopChannel(channel: string): boolean;
@@ -46,6 +47,16 @@ export declare function installProxyClient(opts: {
46
47
  win?: {
47
48
  dispatchEvent(e: unknown): boolean;
48
49
  };
50
+ /**
51
+ * Also make this shell INSPECTABLE by the user's other devices: register an
52
+ * inspect proxy HOST on the same socket (a remote desktop Inspector connects
53
+ * as the client). Chiefly for the MOBILE SPA. NOTE: the socket must be
54
+ * authed with `isHost:true` in its presence for an inspector to discover it.
55
+ * Pass `true` to derive everything from `native`, or `{ platform }` to override.
56
+ */
57
+ inspectHost?: boolean | {
58
+ platform?: InspectPlatform;
59
+ };
49
60
  }): UglyNative;
50
61
  /** Dispatch a proxy event onto the same 'uglyNative' CustomEvent bus base.subscribe reads. */
51
62
  export declare function dispatchNativeEvent(win: {
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/native/proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAmC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAiB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvI,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAgBjD,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,+EAA+E;IAC/E,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,GAAG,UAAU,CAc3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,UAAU,CAkIb;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE;QAAE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9C,GAAG,UAAU,CAWb;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CACjC,GAAG,EAAE;IAAE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EAC3C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,IAAI,CAON"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/native/proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAmC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAiB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAgBjD,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,+EAA+E;IAC/E,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,GAAG,UAAU,CAc3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,UAAU,CAkIb;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE;QAAE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;CACxD,GAAG,UAAU,CAoBb;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CACjC,GAAG,EAAE;IAAE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EAC3C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,IAAI,CAON"}
@@ -1,5 +1,6 @@
1
1
  import { NativeUnavailableError } from './protocol.js';
2
2
  import { createProxyClient, nativeSigner } from './proxyClient.js';
3
+ import { installInspectProxyHost } from '../inspect/proxyHostBootstrap.js';
3
4
  /** Namespaces that require a desktop host (RCE-grade / filesystem / long-running tasks). */
4
5
  export const DESKTOP_NAMESPACES = new Set([
5
6
  'fs',
@@ -216,6 +217,15 @@ export function installProxyClient(opts) {
216
217
  rtcFactory: opts.rtcFactory,
217
218
  onEvent: (event, data) => dispatchNativeEvent(win, event, data),
218
219
  });
220
+ if (opts.inspectHost) {
221
+ installInspectProxyHost({
222
+ socket: opts.socket,
223
+ native: opts.native,
224
+ platform: typeof opts.inspectHost === 'object' ? opts.inspectHost.platform : undefined,
225
+ iceServers: opts.iceServers,
226
+ rtcFactory: opts.rtcFactory,
227
+ });
228
+ }
219
229
  return enableUglyProxy({ native: opts.native, client });
220
230
  }
221
231
  /** Dispatch a proxy event onto the same 'uglyNative' CustomEvent bus base.subscribe reads. */
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/native/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/native/proxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.720",
3
+ "version": "0.1.721",
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": [
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.720";
2
+ export const CLI_VERSION = "0.1.721";
@@ -43,7 +43,7 @@ export interface StackFrame {
43
43
  }
44
44
 
45
45
  // ── Targets ─────────────────────────────────────────────────────────────────
46
- export type InspectPlatform = 'desktop' | 'ios' | 'android';
46
+ export type InspectPlatform = 'desktop' | 'ios' | 'android' | 'web';
47
47
 
48
48
  export interface InspectTarget {
49
49
  /** Stable per-webview id (the shell's tabId). */
@@ -88,4 +88,33 @@ describe('installInspectProxyHost (mobile SPA inspect host)', () => {
88
88
  expect(screenshot).toHaveBeenCalled();
89
89
  expect(JSON.parse(sent[0]).result.base64).toBe('PNG');
90
90
  });
91
+
92
+ it('derives signer + screenshot + platform from `native` (the mobile one-liner)', async () => {
93
+ const { socket, fire } = fakeSocket();
94
+ const { pc, factory } = fakeRtc();
95
+ const native = {
96
+ platform: 'android' as const,
97
+ invoke: vi.fn(async (channel: string) => {
98
+ if (channel === 'proxy.signFingerprint') return { tag: 'sig' };
99
+ if (channel === 'proxy.verifyFingerprint') return { ok: true };
100
+ if (channel === 'capture.screenshot') return 'NATIVE_PNG';
101
+ return undefined;
102
+ }),
103
+ };
104
+ installInspectProxyHost({ socket, native: native as never, rtcFactory: factory });
105
+
106
+ await fire('rtc:offer', { from: 'd', sdp: 's', fpTag: 'good', origin: '' });
107
+ await new Promise((r) => setTimeout(r, 0));
108
+ const { ch, sent, push } = fakeChannel();
109
+ (pc.ondatachannel as (e: { channel: unknown }) => void)({ channel: ch });
110
+
111
+ // platform derived from native.platform
112
+ push({ t: 'req', id: '1', channel: 'inspect.listTargets', payload: {} });
113
+ // screenshot derived from native capture.screenshot
114
+ push({ t: 'req', id: '2', channel: 'inspect.screenshot', payload: {} });
115
+ await new Promise((r) => setTimeout(r, 0));
116
+
117
+ expect(JSON.parse(sent[0]).result.targets[0].platform).toBe('android');
118
+ expect(JSON.parse(sent[1]).result.base64).toBe('NATIVE_PNG');
119
+ });
91
120
  });
@@ -9,23 +9,39 @@
9
9
  // console/network/picked events fan out to subscribed inspectors via broadcast.
10
10
 
11
11
  import { createProxyHost, type ProxyHost } from '../native/proxyHost.js';
12
- import type { ProxySocket } from '../native/proxyClient.js';
12
+ import { nativeSigner, type ProxySocket } from '../native/proxyClient.js';
13
13
  import type { ProxySigner } from '../native/proxyCrypto.js';
14
+ import type { UglyNative } from '../native/protocol.js';
14
15
  import { createSelfInspectHost } from './selfHost.js';
15
16
  import type { InspectPlatform, Screenshot, ScreenshotRequest } from './protocol.js';
16
17
 
17
18
  export interface InspectProxyHostOpts {
18
19
  /** App Socket registered as a host (isHost:true in its presence getUrlParams). */
19
20
  socket: ProxySocket;
21
+ /** When set, `signer`, `screenshot`, and `platform` are derived from it (the
22
+ * recommended mobile/web path — signer = nativeSigner, screenshot = the
23
+ * native capture.screenshot bridge). Explicit fields below still win. */
24
+ native?: Pick<UglyNative, 'invoke' | 'platform'>;
20
25
  /** Verify the inspector's offer + sign our answer (MSK-bound). nativeSigner on mobile. */
21
26
  signer?: ProxySigner;
22
- platform: InspectPlatform;
27
+ platform?: InspectPlatform;
23
28
  /** Native screenshot delegate (WKWebView.takeSnapshot / Android PixelCopy via capture.screenshot). */
24
29
  screenshot?: (req: ScreenshotRequest) => Promise<Screenshot>;
25
30
  iceServers?: RTCIceServer[];
26
31
  rtcFactory?: (config: RTCConfiguration) => RTCPeerConnection;
27
32
  }
28
33
 
34
+ /** Build a screenshot delegate from the native capture.screenshot bridge. */
35
+ function nativeScreenshot(native: Pick<UglyNative, 'invoke'>): (req: ScreenshotRequest) => Promise<Screenshot> {
36
+ return async () => {
37
+ const base64 = await native.invoke('capture.screenshot', undefined);
38
+ const w = typeof window !== 'undefined' ? window.innerWidth : 0;
39
+ const h = typeof window !== 'undefined' ? window.innerHeight : 0;
40
+ const dpr = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1;
41
+ return { base64, width: w, height: h, dpr, format: 'png' };
42
+ };
43
+ }
44
+
29
45
  export interface InspectProxyHost {
30
46
  stop(): void;
31
47
  /** Connected inspector count. */
@@ -33,17 +49,21 @@ export interface InspectProxyHost {
33
49
  }
34
50
 
35
51
  export function installInspectProxyHost(opts: InspectProxyHostOpts): InspectProxyHost {
52
+ const platform = opts.platform ?? opts.native?.platform ?? 'web';
53
+ const signer = opts.signer ?? (opts.native ? nativeSigner(opts.native) : undefined);
54
+ const screenshot = opts.screenshot ?? (opts.native ? nativeScreenshot(opts.native) : undefined);
55
+
36
56
  // Holder so the self-host's onEvent closure can reach the host created after it.
37
57
  const ref: { host?: ProxyHost } = {};
38
58
  const self = createSelfInspectHost({
39
- platform: opts.platform,
40
- screenshot: opts.screenshot,
59
+ platform,
60
+ screenshot,
41
61
  // Live agent events → evt frames to every subscribed inspector.
42
62
  onEvent: (event, data) => ref.host?.broadcast(event, data),
43
63
  });
44
64
  ref.host = createProxyHost({
45
65
  socket: opts.socket,
46
- signer: opts.signer,
66
+ signer,
47
67
  iceServers: opts.iceServers,
48
68
  rtcFactory: opts.rtcFactory,
49
69
  onInvoke: (channel, payload) => self.dispatch(channel, (payload ?? {}) as Record<string, unknown>),
@@ -6,6 +6,8 @@
6
6
  import type { UglyNative } from './protocol.js';
7
7
  import { NativeUnavailableError } from './protocol.js';
8
8
  import { createProxyClient, nativeSigner, type ProxyClient, type ProxySocket, type HostInfo, type RTCFactory } from './proxyClient.js';
9
+ import { installInspectProxyHost } from '../inspect/proxyHostBootstrap.js';
10
+ import type { InspectPlatform } from '../inspect/protocol.js';
9
11
 
10
12
  /** Namespaces that require a desktop host (RCE-grade / filesystem / long-running tasks). */
11
13
  export const DESKTOP_NAMESPACES: ReadonlySet<string> = new Set([
@@ -219,6 +221,14 @@ export function installProxyClient(opts: {
219
221
  iceServers?: RTCIceServer[];
220
222
  rtcFactory?: RTCFactory;
221
223
  win?: { dispatchEvent(e: unknown): boolean };
224
+ /**
225
+ * Also make this shell INSPECTABLE by the user's other devices: register an
226
+ * inspect proxy HOST on the same socket (a remote desktop Inspector connects
227
+ * as the client). Chiefly for the MOBILE SPA. NOTE: the socket must be
228
+ * authed with `isHost:true` in its presence for an inspector to discover it.
229
+ * Pass `true` to derive everything from `native`, or `{ platform }` to override.
230
+ */
231
+ inspectHost?: boolean | { platform?: InspectPlatform };
222
232
  }): UglyNative {
223
233
  const win = opts.win ?? (globalThis as unknown as { dispatchEvent(e: unknown): boolean });
224
234
  const client = createProxyClient({
@@ -229,6 +239,15 @@ export function installProxyClient(opts: {
229
239
  rtcFactory: opts.rtcFactory,
230
240
  onEvent: (event, data) => dispatchNativeEvent(win, event, data),
231
241
  });
242
+ if (opts.inspectHost) {
243
+ installInspectProxyHost({
244
+ socket: opts.socket,
245
+ native: opts.native,
246
+ platform: typeof opts.inspectHost === 'object' ? opts.inspectHost.platform : undefined,
247
+ iceServers: opts.iceServers,
248
+ rtcFactory: opts.rtcFactory,
249
+ });
250
+ }
232
251
  return enableUglyProxy({ native: opts.native, client });
233
252
  }
234
253