ugly-app 0.1.724 → 0.1.726

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.724";
1
+ export declare const CLI_VERSION = "0.1.726";
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.724";
2
+ export const CLI_VERSION = "0.1.726";
3
3
  //# sourceMappingURL=version.js.map
@@ -86,6 +86,13 @@ export interface CreateSocketOptions<R extends AppRegistryBase> {
86
86
  buildId?: string;
87
87
  /** Starting focus state for hosts without `document` (e.g. Electron main). Defaults to true. */
88
88
  initialFocus?: boolean;
89
+ /** Keep the socket CONNECTED + pinging even while unfocused/blurred. The default
90
+ * (false) disconnects on blur to save battery — correct for mobile, which the OS
91
+ * suspends when backgrounded. But a persistent host that keeps RUNNING while
92
+ * unfocused (the desktop browser, a server-side client) must stay connected, or it
93
+ * silently goes offline and misses every live trackDocs push until refocused. Such
94
+ * hosts set this true so blur no longer stops the keep-alive or idle-disconnects. */
95
+ keepConnectedWhenUnfocused?: boolean;
89
96
  /** Called for any message type not handled by the framework. */
90
97
  onCustomMessage?: (msg: {
91
98
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createSocket.d.ts","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSocket.d.ts","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,10 @@ export function createSocket(opts) {
21
21
  let pendingReconnect = false;
22
22
  let wasIdleDisconnect = false;
23
23
  let isWindowFocused = opts.initialFocus ?? true;
24
+ // Persistent hosts (desktop browser) stay connected + pinging while unfocused so
25
+ // they never silently go offline and miss live trackDocs pushes (mobile keeps the
26
+ // default battery-saving blur-disconnect, since the OS suspends it when backgrounded).
27
+ const keepUnfocused = opts.keepConnectedWhenUnfocused ?? false;
24
28
  let pingInterval = null;
25
29
  let state = 'connecting';
26
30
  const reconnectDelay = 1000;
@@ -133,10 +137,10 @@ export function createSocket(opts) {
133
137
  // ─── Ping / keep-alive ─────────────────────────────────────────────────────
134
138
  function startPing() {
135
139
  stopPing();
136
- if (!isWindowFocused)
140
+ if (!isWindowFocused && !keepUnfocused)
137
141
  return;
138
142
  pingInterval = setInterval(() => {
139
- if (isConnected && isWindowFocused)
143
+ if (isConnected && (isWindowFocused || keepUnfocused))
140
144
  socketEmit('ping', {});
141
145
  }, pingIntervalMs);
142
146
  }
@@ -309,6 +313,10 @@ export function createSocket(opts) {
309
313
  }
310
314
  }
311
315
  else {
316
+ // Persistent host: ignore blur for connection management — keep pinging + stay
317
+ // connected so live pushes never stop (the ping interval already keys on keepUnfocused).
318
+ if (keepUnfocused)
319
+ return;
312
320
  stopPing();
313
321
  wasIdleDisconnect = true;
314
322
  }
@@ -372,12 +380,14 @@ export function createSocket(opts) {
372
380
  isConnecting = false;
373
381
  isConnected = false;
374
382
  stopPing();
375
- if (!isWindowFocused) {
383
+ if (!isWindowFocused && !keepUnfocused) {
376
384
  wasIdleDisconnect = true;
377
385
  setState('idle-disconnected');
378
386
  requeueOrRejectPending(true);
379
387
  return;
380
388
  }
389
+ // keepUnfocused hosts fall through to the normal reconnect path below even while
390
+ // unfocused, so a dropped connection self-heals (and re-snapshots) immediately.
381
391
  setState('reconnecting', { attempt: reconnectAttempts + 1 });
382
392
  requeueOrRejectPending(false);
383
393
  const delay = Math.min(maxReconnectDelay, reconnectDelay * Math.pow(2, Math.min(reconnectAttempts, BACKOFF_CAP_EXP)));
@@ -1 +1 @@
1
- {"version":3,"file":"createSocket.js","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSocket.js","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA+I3D,MAAM,UAAU,YAAY,CAC1B,IAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAClC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC7B,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MACrD,MAAM,CAAC,QAAQ,CAAC,IAClB,GAAG,MAAM,EAAE;YACb,CAAC,CAAC,kBAAkB,kBAAkB,GAAG,MAAM,EAAE;QACnD,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,SAAS,MAAM;QACb,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAE9E,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;IAEvE,8EAA8E;IAE9E,IAAI,EAAE,GAAqB,IAAI,CAAC;IAChC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;IAChD,iFAAiF;IACjF,kFAAkF;IAClF,uFAAuF;IACvF,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,IAAI,KAAK,CAAC;IAC/D,IAAI,YAAY,GAA0C,IAAI,CAAC;IAC/D,IAAI,KAAK,GAAoB,YAAY,CAAC;IAE1C,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,MAAM,iBAAiB,GAAG,MAAM,CAAC;IACjC,MAAM,eAAe,GAAG,CAAC,CAAC,CAAC,kDAAkD;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,cAAc,GAAG,KAAK,CAAC;IAE7B,IAAI,iBAAiB,GAAyB,IAAI,CAAC;IACnD,IAAI,iBAAiB,GAAwB,IAAI,CAAC;IAClD,IAAI,gBAAgB,GAAgC,IAAI,CAAC;IAEzD,8EAA8E;IAC9E,gFAAgF;IAChF,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,yEAAyE;IACzE,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAUpB,CAAC;IACJ,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkC,CAAC;IACjE,sEAAsE;IACtE,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoC,CAAC;IAEnE,+EAA+E;IAE/E,SAAS,qBAAqB;QAC5B,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,iBAAiB,GAAG,OAAO,CAAC;YAC5B,gBAAgB,GAAG,MAAM,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,6EAA6E;QAC7E,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,qBAAqB,EAAE,CAAC;IAExB,8EAA8E;IAE9E,SAAS,QAAQ,CAAC,IAAqB,EAAE,KAA+B;QACtE,KAAK,GAAG,IAAI,CAAC;QACb,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,SAAS,YAAY,CAAC,MAAc;QAClC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,cAAc,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,4EAA4E;IAC5E,kEAAkE;IAClE,SAAS,sBAAsB,CAAC,IAAa;QAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;YAC9B,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,SAAS,OAAO,CAAC,GAAW;QAC1B,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,WAAW,CAAC,KAAe,EAAE,IAAY;QAChD,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,2BAA2B,SAAS,+BAA+B,CAAC,CAAC;gBAClF,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,aAAa,CAAC,UAAkB;QACvC,IAAI,aAAa,IAAI,WAAW,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAMD,SAAS,UAAU,CAAC,SAA0B,EAAE,IAAa,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI;QAC1F,oFAAoF;QACpF,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACxD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACpG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;QAC5C,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,8EAA8E;IAE9E,SAAS,SAAS;QAChB,QAAQ,EAAE,CAAC;QACX,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/C,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YAC9B,IAAI,WAAW,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC;gBAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC,EAAE,cAAc,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,QAAQ;QACf,IAAI,YAAY,EAAE,CAAC;YACjB,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5B,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,SAAS,cAAc;QACrB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC;YACpD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CACrE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA4C,CAAC;IAEjF,8EAA8E;IAE9E,SAAS,eAAe;QACtB,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAClE,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,EAAG,CAAC;YAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC;gBAAE,SAAS,CAAC,oCAAoC;YACtD,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzB,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC1B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,UAAU;QACjB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACpE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAG,CAAC,CAAC;QACjC,CAAC;QACD,eAAe,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;iBACtB,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;gBACtB,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;oBACpE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;YACjB,gBAAgB,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,SAAS,QAAQ,CAAC,SAAiB,EAAE,MAAe;QAClD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,SAAS,aAAa,CAAC,KAAmB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,EAAE,IAAI,CAAC,cAAc,CAQ/D,CAAC;QAEF,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,aAAa,GAAG,IAAI,CAAC;gBACrB,UAAU,EAAE,CAAC;gBACb,OAAO;YAET,KAAK,YAAY;gBACf,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC5B,OAAO;YAET,KAAK,OAAO;gBACV,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO;YAET,KAAK,OAAO;gBACV,yEAAyE;gBACzE,0EAA0E;gBAC1E,sDAAsD;gBACtD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO;YAET,KAAK,UAAU;gBACb,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAC,EAAE,CAAC;wBACN,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACvB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;gBACD,OAAO;YAET,KAAK,kBAAkB;gBACrB,QAAQ,CAAC,4BAA4B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO;YAET,KAAK,iBAAiB;gBACpB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO;YAET,OAAO,CAAC,CAAC,CAAC;gBACR,qBAAqB;gBACrB,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACnC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAC,EAAE,CAAC;wBACN,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACvB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;oBACpD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,qEAAqE;gBACrE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC9B,IAAI,CAAC,EAAE,CAAC;wBACN,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACxB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACvB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClC,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,MAAM,QAAQ,IAAI,OAAO;wBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oEAAoE;IAEpE,SAAS,GAAG,CACV,IAAY,EACZ,OAAgB,EAChB,YAA2B,KAAK,EAChC,KAAK,GAAG,KAAK;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,oEAAoE;YACpE,kEAAkE;YAClE,gEAAgE;YAChE,MAAM,KAAK,GACT,SAAS,KAAK,IAAI;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC,EAAE,SAAS,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACd,OAAO;gBACP,MAAM;gBACN,kEAAkE;gBAClE,mEAAmE;gBACnE,iEAAiE;gBACjE,8DAA8D;gBAC9D,OAAO,EAAE,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;gBACzC,UAAU;gBACV,KAAK;gBACL,SAAS;aACV,CAAC,CAAC;YACH,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,SAAS,UAAU,CAAC,OAAgB;QAClC,IAAI,OAAO,KAAK,eAAe;YAAE,OAAO;QACxC,eAAe,GAAG,OAAO,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,iBAAiB,GAAG,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,yFAAyF;YACzF,IAAI,aAAa;gBAAE,OAAO;YAC1B,QAAQ,EAAE,CAAC;YACX,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,eAAe,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC;QACzD,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACjD,UAAU,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAE9E,SAAS,OAAO;QACd,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,aAAa,GAAG,KAAK,CAAC;QAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAE9C,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC/B,YAAY,GAAG,KAAK,CAAC;YACrB,MAAM,WAAW,GAAG,iBAAiB,GAAG,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,iBAAiB,CAAC;YAClC,WAAW,GAAG,IAAI,CAAC;YACnB,gBAAgB,GAAG,WAAW,IAAI,OAAO,CAAC;YAC1C,iBAAiB,GAAG,CAAC,CAAC;YACtB,cAAc,GAAG,KAAK,CAAC;YACvB,iBAAiB,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;YAChF,iBAAiB,EAAE,EAAE,CAAC;YACtB,IAAI,eAAe;gBAAE,SAAS,EAAE,CAAC;YAEjC,kFAAkF;YAClF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,MAAc,CAAC;gBACnB,IAAI,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzD,MAAM,GAAG,aAAa,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,kFAAkF;oBAClF,MAAM,GAAG,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;wBAClB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;wBACjB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;wBAChB,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;wBACxD,UAAU,EAAE,EAAE;wBACd,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,aAAa,GAAG,IAAI,CAAC;gBACrB,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,YAAY,GAAG,KAAK,CAAC;YACrB,WAAW,GAAG,KAAK,CAAC;YACpB,QAAQ,EAAE,CAAC;YAEX,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,iBAAiB,GAAG,IAAI,CAAC;gBACzB,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBAC9B,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,iFAAiF;YACjF,gFAAgF;YAEhF,QAAQ,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,iBAAiB,EACjB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAC3E,CAAC;YACF,qBAAqB,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE;gBACd,iBAAiB,EAAE,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,iDAAiD;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,CAAC;IAEV,8EAA8E;IAE9E,OAAO;QACL,OAAO,CAAC,KAAa;YACnB,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAwC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC/E,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;oBACd,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACb,MAAM,GAAG,GAAG,CAA0C,CAAC;wBACvD,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM;oBACN,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE;wBACvB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;oBACpC,CAAC,EAAE,KAAK,CAAC;oBACT,UAAU,EAAE,EAAE,EAAE,uDAAuD;oBACvE,KAAK,EAAE,KAAK;oBACZ,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,IAAY,EAAE,KAAc,EAAE,IAAqB;YACzD,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACzE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAEpE,CAAC;QACJ,CAAC;QAED;;;;;;;WAOG;QACH,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,KAAc,EACd,OAAiC,EACjC,IAA+B;YAE/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE;gBAC5E,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzB,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAyC,CAAC;gBAC1F,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAe,CAAC;YACpB,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,KAAK;oBAAE,MAAM;gBACjB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,IAAI,EAAU,CAAC;gBACf,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACpD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;wBAAE,SAAS;oBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBACvC,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,IAAI,KAA0D,CAAC;oBAC/D,IAAI,CAAC;wBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;oBAC3C,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS;oBACX,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAChC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;wBACtB,IAAI,GAAG,IAAI,CAAC;wBACZ,MAAM;oBACR,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,WAAW,IAAI,SAAS,CAAC,CAAC;oBAC3D,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CAAqB,UAAkB,EAAE,EAAU;YACvD,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAC5E,CAAC,CAAC,EAAE,EAAE,CAAE,CAAwB,CAAC,IAAI,CACtC,CAAC;QACJ,CAAC;QAED,OAAO,CACL,UAAkB,EAClB,MAAgC,EAChC,OAA0E;YAE1E,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAC7F,CAAC,CAAC,EAAE,EAAE,CAAE,CAAoB,CAAC,KAAK,CACnC,CAAC;QACJ,CAAC;QAED,QAAQ,CACN,UAAkB,EAClB,QAAmC,EACnC,OAA2C;YAE3C,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CACvG,CAAC,CAAC,EAAE,EAAE,CAAE,CAAoB,CAAC,KAAK,CACnC,CAAC;QACJ,CAAC;QAED,QAAQ,CACN,UAAkB,EAClB,EAAU,EACV,EAA2B;YAE3B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAA4B,CAAC,CAAC;YACxD,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAClF,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAChE,wEAAwE;gBACxE,2EAA2E;gBAC3E,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE;gBACV,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC;QACJ,CAAC;QAED,SAAS,CACP,UAAkB,EAClB,MAMC,EACD,EAAsB,EACtB,OAAkC;YAElC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAA4B,CAAC,CAAC;YACxD,IAAI,OAAO;gBAAE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChD,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE;gBAC9B,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC5H,CAAC,CAAC;YACH,GAAG,CAAC,WAAW,EAAE;gBACf,UAAU;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxB,wEAAwE;gBACxE,2EAA2E;gBAC3E,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE;gBACV,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CACF,UAAkB,EAClB,MAAuB,EACvB,OAAwB;YAExB,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAC7F,CAAC,CAAC,EAAE,EAAE,CAAE,CAAoB,CAAC,KAAK,CACnC,CAAC;QACJ,CAAC;QAED,UAAU,CACR,UAAkB,EAClB,MAMC,EACD,EAAsB;YAEtB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAA4B,CAAC,CAAC;YACxD,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE;gBAC9B,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aAC5H,CAAC,CAAC;YACH,GAAG,CAAC,YAAY,EAAE;gBAChB,UAAU;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxB,wEAAwE;gBACxE,2EAA2E;gBAC3E,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE;gBACV,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,GAAG,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,IAAU,EAAE,GAAW;YACtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAGpH,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;gBACtC,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9E,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAEhB,EAAE,CAAC,KAAa,EAAE,OAAgC;YAChD,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAChB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjB,OAAO,GAAG,EAAE;gBACV,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;oBAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC;QACJ,CAAC;QAED,iBAAiB,CAAC,OAAO,GAAG,KAAK;YAC/B,IAAI,WAAW;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAClF,iBAAiB;oBACf,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;qBACjD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,eAAe;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,UAAU,CAAC,OAAgB;YACzB,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,UAAU;YACR,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,QAAQ,EAAE,CAAC;YACX,EAAE,EAAE,KAAK,EAAE,CAAC;YACZ,EAAE,GAAG,IAAI,CAAC;QACZ,CAAC;KACyB,CAAC;AAC/B,CAAC"}
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{function Te(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,r=0;function o(){return String(++r)}let c=new Map,i=null,l=!1,m=!1,g=!1,a=0,y=!1,k=!1,d=e.initialFocus??!0,h=null,S="connecting",C=1e3,L=3e4,P=5,U=1e3,ee=!1,lt=3e4,te=null,fe=null,ft=null,ne=null,_=null,re=[],oe=[],b=new Map,I=new Map,z=new Map;function pe(){te=new Promise((u,s)=>{fe=u,ft=s}),te.catch(()=>{})}pe();function ie(u,s){S=u,typeof window<"u"&&window.dispatchEvent(new CustomEvent("ws-connection-state",{detail:{state:u,...s}}))}function pt(u){for(let{reject:s,timeout:f}of b.values())clearTimeout(f),s(new Error(u));b.clear(),I.clear(),z.clear()}function me(u){for(let[s,f]of b)clearTimeout(f.timeout),f.retry?ye(oe,s):(b.delete(s),f.reject(new Error(u?"WebSocket disconnected (idle)":"WebSocket disconnected")))}function ge(u){i.send(JSON.stringify(u))}function ye(u,s){u.length>=U&&(u.shift(),ee||(console.warn(`[socket] queue exceeded ${U} \u2014 dropping oldest message(s)`),ee=!0)),u.push(s)}function W(u){g&&l&&i?.readyState===WebSocket.OPEN?i.send(u):ye(re,u)}function we(u,s,f=6e4,p=!0){if(typeof u=="object"&&u!==null){W(JSON.stringify(u));return}return new Promise((w,T)=>{let E=o(),R=JSON.stringify({type:u,id:E,data:s}),O=setTimeout(()=>{b.delete(E),T(new Error(`Request timeout: ${u}`))},f);b.set(E,{resolve:w,reject:T,timeout:O,serialized:R,retry:p,timeoutMs:f}),W(R)})}function ke(u,s){W(JSON.stringify({type:u,data:s}))}function he(){V(),d&&(h=setInterval(()=>{l&&d&&ke("ping",{})},lt))}function V(){h&&(clearInterval(h),h=null)}function mt(){for(let[u,s]of M)v(s.type,{...s.params,subId:u}).catch(f=>console.error("[resubscribe]",f))}let M=new Map;function gt(){for(;oe.length>0&&i?.readyState===WebSocket.OPEN;){let u=oe.shift(),s=b.get(u);s&&(i.send(s.serialized),s.timeoutMs!==null&&(s.timeout=setTimeout(()=>{b.delete(u),s.reject(new Error(`Timeout: retry ${u}`))},s.timeoutMs)))}}function yt(){for(;re.length>0&&i?.readyState===WebSocket.OPEN;)i.send(re.shift());gt(),e.buildId&&we("buildId",{}).then(u=>{u!==e.buildId&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("version-mismatch"))}).catch(()=>{}),y&&(mt(),y=!1)}function se(u,s){typeof window<"u"&&window.dispatchEvent(new CustomEvent(u,{detail:s}))}function wt(u){let s=JSON.parse(u.data,e.messageReviver);switch(s.type){case"ready":g=!0,yt();return;case"authFailed":se("auth-failed",{});return;case"track":s.subId&&I.get(s.subId)?.(s.data);return;case"frame":s.subId&&z.get(s.subId)?.(s.data);return;case"response":if(s.id){let f=b.get(s.id);f&&(clearTimeout(f.timeout),b.delete(s.id),f.resolve(s.data??s.result))}return;case"pushNotification":se("push-notification-received",s.data);return;case"server-draining":se("server-draining",s.data);return;default:{if(s.id&&s.type==="error"){let p=b.get(s.id);p&&(clearTimeout(p.timeout),b.delete(s.id),p.reject(new Error(s.error??"Unknown error")));return}if(s.id){let p=b.get(s.id);if(p){clearTimeout(p.timeout),b.delete(s.id),p.resolve(s.data??s.result);return}}e.onCustomMessage?.(s);let f=c.get(s.type);if(f)for(let p of f)p(s.data)}}}function v(u,s,f=6e4,p=!1){return new Promise((w,T)=>{let E=o(),R=JSON.stringify({id:E,type:u,payload:s}),O=f===null?null:setTimeout(()=>{b.delete(E),T(new Error(`Timeout: ${u}`))},f);b.set(E,{resolve:w,reject:T,timeout:O??setTimeout(()=>{},0),serialized:R,retry:p,timeoutMs:f}),W(R)})}function be(u){u!==d&&(d=u,u?l?he():(a=0,ce()):(V(),k=!0))}typeof document<"u"&&(d=document.visibilityState==="visible",document.addEventListener("visibilitychange",()=>{be(document.visibilityState==="visible")}));function ce(){if(m)return;m=!0,g=!1;let u=new URL(n,typeof window<"u"?window.location.href:void 0);if(e.getUrlParams)for(let[s,f]of Object.entries(e.getUrlParams()))u.searchParams.set(s,f);i=new WebSocket(u.toString()),i.addEventListener("message",wt),i.addEventListener("open",()=>{m=!1;let s=a>0,f=k;if(l=!0,y=s||f,a=0,ee=!1,k=!1,ie("connected",{wasReconnect:s,wasIdleReconnect:f}),fe?.(),d&&he(),ne){let p;_!==null&&b.has(_)?p=_:(p=o(),b.set(p,{resolve:()=>{},reject:()=>{},timeout:setTimeout(()=>b.delete(p),3e4),serialized:"",retry:!1,timeoutMs:3e4})),_=null,ge({id:p,type:"auth",payload:{token:ne}})}}),i.addEventListener("close",()=>{if(m=!1,l=!1,V(),!d){k=!0,ie("idle-disconnected"),me(!0);return}ie("reconnecting",{attempt:a+1}),me(!1);let s=Math.min(L,C*Math.pow(2,Math.min(a,P)));pe(),setTimeout(()=>{a++,ce()},s)}),i.addEventListener("error",()=>{})}return ce(),{connect(u){ne=u;let s=o(),f=new Promise((p,w)=>{b.set(s,{resolve:T=>{let E=T;p({user:E.user,appToken:E.appToken})},reject:w,timeout:setTimeout(()=>{b.delete(s),w(new Error("Auth timeout"))},3e4),serialized:"",retry:!1,timeoutMs:3e4})});return i?.readyState===WebSocket.OPEN?ge({id:s,type:"auth",payload:{token:u}}):_=s,f},request(u,s,f){let p=f?.timeoutMs===void 0?6e4:f.timeoutMs;return v("request",{name:u,input:s},p,f?.retry??!0)},async requestStream(u,s,f,p){let w=await fetch(`/api/${u}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},credentials:"include",body:JSON.stringify({input:s}),...p?.signal?{signal:p.signal}:{}});if(!w.ok||!w.body){let B=await w.json().catch(()=>({}));if(B.error)throw new Error(B.error);return B.result}let T=w.body.getReader(),E=new TextDecoder("utf-8"),R="",O,ve=!1;for(;!ve;){let{value:B,done:kt}=await T.read();if(kt)break;R+=E.decode(B,{stream:!0});let ae;for(;(ae=R.indexOf(`
2
- `))!==-1;){let Se=R.slice(0,ae).replace(/\r$/,"");if(R=R.slice(ae+1),!Se.startsWith("data:"))continue;let Ee=Se.slice(5).trimStart();if(!Ee)continue;let A;try{A=JSON.parse(Ee)}catch{continue}if(A.type==="__result__"){O=A.result,ve=!0;break}if(A.type==="__error__")throw new Error(A.error??`request ${u} failed`);f(A)}}return O},getDoc(u,s){return v("request",{name:"storeGetDoc",input:{collection:u,id:s}}).then(f=>f.item)},getDocs(u,s,f){return v("request",{name:"storeGetDocs",input:{collection:u,filter:s,...f}}).then(p=>p.items)},getQuery(u,s,f){return v("request",{name:"storeGetQuery",input:{collection:u,query:s,...f}}).then(p=>p.items)},trackDoc(u,s,f){let p=o();return I.set(p,f),M.set(p,{type:"trackDoc",params:{collection:u,id:s}}),v("trackDoc",{collection:u,id:s,subId:p}).catch(w=>{console.error("[trackDoc]",w)}),()=>{I.delete(p),M.delete(p),v("unsubscribe",{subId:p}).catch(()=>{})}},trackDocs(u,s,f,p){let w=o();return I.set(w,f),p&&z.set(w,p),M.set(w,{type:"trackDocs",params:{collection:u,keys:s.keys,filter:s.filter,sort:s.sort,limit:s.limit,skip:s.skip}}),v("trackDocs",{collection:u,keys:s.keys,filter:s.filter,subId:w,sort:s.sort,limit:s.limit,skip:s.skip}).catch(T=>{console.error("[trackDocs]",T)}),()=>{I.delete(w),z.delete(w),M.delete(w),v("unsubscribe",{subId:w}).catch(()=>{})}},find(u,s,f){return v("request",{name:"storeGetDocs",input:{collection:u,filter:s,...f}}).then(p=>p.items)},trackQuery(u,s,f){let p=o();return I.set(p,f),M.set(p,{type:"trackQuery",params:{collection:u,keys:s.keys,filter:s.filter,sort:s.sort,limit:s.limit,skip:s.skip}}),v("trackQuery",{collection:u,keys:s.keys,filter:s.filter,subId:p,sort:s.sort,limit:s.limit,skip:s.skip}).catch(w=>{console.error("[trackQuery]",w)}),()=>{I.delete(p),M.delete(p),v("unsubscribe",{subId:p}).catch(()=>{})}},async uploadFile(u,s){let{uploadUrl:f,resultUrl:p}=await v("request",{name:"uploadUrl",input:{key:s,contentType:u.type}}),w=await fetch(f,{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,s){let f=c.get(u);return f||(f=new Set,c.set(u,f)),f.add(s),()=>{f.delete(s),f.size===0&&c.delete(u)}},waitForConnection(u=3e4){return l?Promise.resolve():new Promise((s,f)=>{let p=setTimeout(()=>f(new Error("Connection timeout")),u);te?.then(()=>{clearTimeout(p),s()}).catch(w=>{clearTimeout(p),f(w instanceof Error?w:new Error(String(w)))})})},get connectionState(){return S},setFocused(u){be(u)},disconnect(){pt("Disconnected"),V(),i?.close(),i=null}}}var cn=new TextEncoder;function X(e){let t=/a=fingerprint:(\S+)\s+([0-9A-Fa-f:]+)/.exec(e||"");return t?`${t[1].toLowerCase()} ${t[2].toUpperCase()}`:null}function Re(e){return e??{}}function Pe(e){let t=e.rtcFactory??(g=>new RTCPeerConnection(g)),n=new Map,r=new Set,o=[];async function c(g){let a=String(g.from??"");if(!a)return;let y=String(g.sdp??""),k=String(g.origin??"");if(e.signer&&!await e.signer.verify("client",X(y)??"",String(g.fpTag??""))){e.socket.emit("rtc:error",{to:a,reason:"fingerprint-auth-failed"});return}try{n.get(a)?.pc.close()}catch{}let d=t({iceServers:e.iceServers??[]}),h={pc:d,dc:null,origin:k};n.set(a,h),d.onicecandidate=P=>{P.candidate&&e.socket.emit("rtc:ice",{to:a,candidate:P.candidate.toJSON()})},d.ondatachannel=P=>{h.dc=P.channel,P.channel.onmessage=U=>{l(h,P.channel,U.data)}},await d.setRemoteDescription({type:"offer",sdp:y});let S=await d.createAnswer();await d.setLocalDescription(S);let C=d.localDescription?.sdp??S.sdp??"",L=e.signer?await e.signer.sign("host",X(C)??""):void 0;e.socket.emit("rtc:answer",{to:a,sdp:C,fpTag:L})}async function i(g){let a=n.get(String(g.from??""));if(a)try{await a.pc.addIceCandidate(g.candidate)}catch{}}async function l(g,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 d=await e.onInvoke(String(k.channel),k.payload,g.origin);m(a,{t:"res",id:k.id,ok:!0,result:d})}catch(d){m(a,{t:"res",id:k.id,ok:!1,error:String(d?.message??d)})}else if(k.t==="sub"&&k.id!==void 0)r.add({dc:a,event:String(k.channel??""),id:k.id}),m(a,{t:"res",id:k.id,ok:!0,result:{snapshot:null}});else if(k.t==="unsub"&&k.id!==void 0)for(let d of[...r])d.dc===a&&d.id===k.id&&r.delete(d)}function m(g,a){try{g.readyState==="open"&&g.send(JSON.stringify(a))}catch{}}return o.push(e.socket.on("rtc:offer",g=>{c(Re(g))})),o.push(e.socket.on("rtc:ice",g=>{i(Re(g))})),{stop(){for(let g of o)try{g()}catch{}for(let g of n.values())try{g.pc.close()}catch{}n.clear(),r.clear()},broadcast(g,a){for(let y of r)y.event===g&&m(y.dc,{t:"evt",event:g,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,r)=>(await e.invoke("proxy.verifyFingerprint",{role:t,fingerprint:n,tag:r})).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 r=0,o=this.items.length;for(;r<o;){let c=r+o>>>1;n(this.items[c])<t?r=c+1:o=c}return this.items.slice(r)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var K=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 bt(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 x(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(bt(e))return{type:"node",className:e.nodeName??"Node",preview:Et(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:Rt(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(Tt(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 r=Object.keys(n);return{type:"object",className:Ce(n)??"Object",size:r.length,objectId:t.registry.put(n),preview:vt(n,r),entries:ue(n,r,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 ue({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 ue(e,n,t,1/0).map(r=>r.value)}return[]}function Ne(e,t,n=5){let r=[];for(let o=0;o<e.length&&o<n;o++)r.push({key:String(o),value:x(e[o],t)});return r}function ue(e,t,n,r=5){let o=[];for(let c=0;c<t.length&&c<r;c++){let i=t[c],l;try{l=e[i]}catch{l="(getter threw)"}o.push({key:i,value:x(l,n)})}return o}function Me(e,t,n=5){let r=[],o=0;for(let[c,i]of e){if(o++>=n)break;r.push({key:x(c,t),value:x(i,t)})}return r}function De(e,t,n=5){let r=[],o=0;for(let c of e){if(o++>=n)break;r.push({value:x(c,t)})}return r}function vt(e,t){let n=t.slice(0,5).map(o=>{let c;try{c=e[o]}catch{c="\u2026"}return`${o}: ${St(c)}`}),r=t.length>5?", \u2026":"";return F(`{${n.join(", ")}${r}}`,100)}function St(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 Et(e){let t=e;if(t.nodeType===1){let n=(t.nodeName??"").toLowerCase(),r=t.id?`#${t.id}`:"",o=typeof t.className=="string"&&t.className?`.${t.className.trim().split(/\s+/).join(".")}`:"";return F(`<${n}${r}${o}>`,100)}return t.nodeName??"Node"}function Tt(e){return typeof e?.then=="function"}function Rt(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 i of Oe){let l=console[i];typeof l=="function"&&(n[i]=l,console[i]=(...m)=>{try{c(i,m)}catch{}l.apply(console,m)})}let r=i=>{c("error",[i.message],{stack:D(i.error?.stack),source:{url:i.filename||"",line:i.lineno||0,col:i.colno||0}})},o=i=>{let l=i.reason;c("error",[`Unhandled rejection: ${l?.message??String(i.reason)}`],{stack:D(l?.stack)})};typeof window<"u"&&(window.addEventListener("error",r),window.addEventListener("unhandledrejection",o));function c(i,l,m){let g=l.map(k=>x(k,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=m?.stack??D(new Error().stack,1),y={seq:++t,ts:e.now(),level:i,args:g,text:Pt(l),stack:a.length?a:void 0,source:m?.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 i of Oe){let l=n[i];l&&(console[i]=l)}typeof window<"u"&&(window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",o))}}function Pt(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 D(e,t=0){if(!e)return[];let n=[],r=e.split(`
3
- `);for(let o of r){let c=o.trim(),i=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(c)||/^at\s+(.*?):(\d+):(\d+)$/.exec(c);if(i){i.length===5?n.push({functionName:i[1],url:i[2],line:+i[3],col:+i[4]}):n.push({functionName:"(anonymous)",url:i[1],line:+i[2],col:+i[3]});continue}i=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(c),i&&n.push({functionName:i[1]||"(anonymous)",url:i[2],line:+i[3],col:+i[4]})}return n.slice(t)}function _e(e,t,n=Date.now){let r=t!=null&&t>0?t:40,o=typeof document<"u"&&document.documentElement?de(document.documentElement,e,r,0):Nt();return{documentUrl:typeof location<"u"?location.href:"",capturedAt:n(),root:o}}function de(e,t,n,r){let o={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&&(o.textContent=a.slice(0,200)),o}if(e.nodeType!==Node.ELEMENT_NODE)return o;let c=e;if(o.attributes=Ct(c),o.rect=It(c),r>=n)return o;let i=c.shadowRoot;i&&(o.shadowRoots=Array.from(i.childNodes).filter(Le).map(a=>de(a,t,n,r+1)));let l=[],m=je(c,"before");m&&l.push(m);for(let a of Array.from(c.childNodes))Le(a)&&l.push(de(a,t,n,r+1));let g=je(c,"after");return g&&l.push(g),l.length&&(o.children=l),o}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:`${xt(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function xt(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 Ct(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function It(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function Nt(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function Be(e,t){let n=Mt(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let r=getComputedStyle(n),o=$t(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:Bt(n),computedStyles:Dt(r),matchedRules:Ot(n),boxModel:jt(n,r,o),eventListeners:Lt(n),accessibility:_t(n),rect:o}}function Mt(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 Dt(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function Ot(e){let t=[];if(typeof document>"u")return t;for(let n of Array.from(document.styleSheets)){let r;try{r=n.cssRules}catch{continue}let o=n.href??void 0;for(let c of Array.from(r)){if(!(c instanceof CSSStyleRule))continue;let i=!1;try{i=e.matches(c.selectorText)}catch{i=!1}i&&t.push({selector:c.selectorText,source:o?{url:o,line:0,col:0}:void 0,props:At(c.style)})}}return t}function At(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function jt(e,t,n){let r=(o,c)=>({top:J(t.getPropertyValue(`${o}-top${c}`)),right:J(t.getPropertyValue(`${o}-right${c}`)),bottom:J(t.getPropertyValue(`${o}-bottom${c}`)),left:J(t.getPropertyValue(`${o}-left${c}`))});return{content:n,padding:r("padding",""),border:r("border","-width"),margin:r("margin","")}}function Lt(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let r=n(e),o=[];for(let[c,i]of Object.entries(r))for(let l of i)o.push({type:c,useCapture:l.useCapture,passive:l.passive});return o}catch{return[]}}function _t(e){let t={};for(let o of Array.from(e.attributes))o.name.startsWith("aria-")&&(t[o.name]=o.value);let n=e.getAttribute("role")??void 0,r=e.getAttribute("aria-label")??e.title??(e.textContent??"").trim().slice(0,80)??void 0;return{role:n,name:r||void 0,properties:t}}function Bt(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function $t(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function J(e){let t=parseFloat(e);return Number.isFinite(t)?t:0}async function $e(e,t,n){let r=t.now();try{let o=Ft(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&Ht(o)&&(o=await o),t.setLast(o),{ok:!0,value:x(o,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-r}}catch(o){let c=o;return{ok:!1,exception:{text:`${c?.name??"Error"}: ${c?.message??String(o)}`,stack:D(c?.stack)},tookMs:t.now()-r}}}function Ft(e,t){let n=Object.keys(t);if(n.length===0)return(0,eval)(e);let r=new Function(...n,`return (${e});`);try{return r(...n.map(o=>t[o]))}catch(o){if(o instanceof SyntaxError)return new Function(...n,e)(...n.map(i=>t[i]));throw o}}function Ht(e){return typeof e?.then=="function"}var Q=64*1024;function Ue(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,r=window.fetch?.bind(window);r&&(window.fetch=async(m,g)=>{let a=e.now(),y=(g?.method||(m instanceof Request?m.method:"GET")).toUpperCase(),k=m instanceof Request?m.url:String(m),d={id:n(),ts:a,method:y,url:k,resourceType:"fetch",requestHeaders:He(g?.headers??(m instanceof Request?m.headers:void 0)),requestBody:qe(g?.body),timing:{startMs:a,durationMs:0}};try{let h=await r(m,g);return d.status=h.status,d.responseHeaders=He(h.headers),d.timing.durationMs=e.now()-a,d.fromCache=h.fromCache,await zt(h,d),l(d),h}catch(h){throw d.failed=!0,d.timing.durationMs=e.now()-a,d.responseBody={kind:"text",data:String(h?.message??h)},l(d),h}});let o=window.XMLHttpRequest,c=o?.prototype.open,i=o?.prototype.send;o&&c&&i&&(o.prototype.open=function(g,a,...y){return this.__inspect={method:g.toUpperCase(),url:a,start:0},c.apply(this,[g,a,...y])},o.prototype.send=function(g){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:Ut(this.getAllResponseHeaders()),requestBody:qe(g),responseBody:Wt(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};l(y)})),i.apply(this,[g])});function l(m){e.buffer.push(m),e.onEntry?.(m)}return()=>{r&&(window.fetch=r),o&&c&&(o.prototype.open=c),o&&i&&(o.prototype.send=i)}}function Fe(e){return e.responseStatus||void 0}function ze(){if(typeof performance>"u"||!performance.getEntriesByType)return[];let e=performance.timeOrigin??0,t=[],n=performance.getEntriesByType("navigation")[0];n&&t.push({id:"nav",ts:e+n.startTime,method:"GET",url:n.name||(typeof location<"u"?location.href:""),status:Fe(n),resourceType:"document",requestHeaders:{},timing:{startMs:e+n.startTime,durationMs:n.duration,ttfbMs:n.responseStart-n.startTime},sizeBytes:n.transferSize||void 0});for(let r of performance.getEntriesByType("resource"))r.initiatorType==="fetch"||r.initiatorType==="xmlhttprequest"||t.push({id:`res:${Math.round(r.startTime)}:${r.name}`,ts:e+r.startTime,method:"GET",url:r.name,status:Fe(r),resourceType:qt(r.initiatorType),requestHeaders:{},timing:{startMs:e+r.startTime,durationMs:r.duration},sizeBytes:r.transferSize||r.decodedBodySize||void 0,fromCache:r.transferSize===0&&r.decodedBodySize>0});return t}function qt(e){switch(e){case"img":case"image":return"img";case"css":case"link":return"css";case"script":return"script";case"font":return"font";default:return e||"other"}}function He(e){let t={};if(!e)return t;if(typeof Headers<"u"&&e instanceof Headers)e.forEach((n,r)=>t[r]=n);else if(Array.isArray(e))for(let[n,r]of e)t[n]=r;else Object.assign(t,e);return t}function Ut(e){let t={};for(let n of e.split(`\r
4
- `)){let r=n.indexOf(":");r>0&&(t[n.slice(0,r).trim().toLowerCase()]=n.slice(r+1).trim())}return t}function qe(e){if(e!=null)return typeof e=="string"?e.slice(0,Q):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,Q):"(binary)"}async function zt(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 r=await e.clone().text();t.sizeBytes=r.length;let o=/json/i.test(n)?"json":"text";t.responseBody={kind:o,data:r.slice(0,Q)}}catch{t.responseBody={kind:"omitted"}}}function Wt(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,Q)}}}catch{}return{kind:"omitted"}}var G=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 r=`n${++this.seq}`;return this.idOf.set(t,r),this.byId.set(r,t),r}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};function Y(e){let t=e.getAttribute?.("data-id");if(t)return`[data-id=${t}]`;let n=e.getAttribute?.("role"),r=e.tagName.toLowerCase();return e.id?`${r}#${e.id}`:n?`${r}[role=${n}]`:r}var We="__ugly_inspect_overlay__";function Ve(e){if(typeof document>"u")return{setEnabled:()=>{},highlight:()=>{},destroy:()=>{}};let t=!1,n=null;function r(){if(n)return n;let a=document.createElement("div");return a.id=We,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 o(a){let y=r();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=l(a.clientX,a.clientY);y&&o(le(y))},i=a=>{let y=l(a.clientX,a.clientY);y&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(y),e.onPicked({nodeId:e.reg.idFor(y),selector:Y(y),rect:le(y)}),m(!1))};function l(a,y){n&&(n.style.display="none");let k=document.elementFromPoint(a,y);return k&&k.id!==We?k:null}function m(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",c,!0),window.addEventListener("pointerdown",i,!0)):(window.removeEventListener("pointermove",c,!0),window.removeEventListener("pointerdown",i,!0),o(null)))}function g(a){if(!a){o(null);return}let y=e.reg.get(a);y?.nodeType===1&&o(le(y))}return{setEnabled:m,highlight:g,destroy:()=>{m(!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 Je=4;async function Qe(e,t){let n=t(),r=[];await new Promise(c=>{let i=()=>{r.push(Vt()),t()-n>=e?c():Xe(i)};Xe(i)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:Xt(r)}}function Xe(e){typeof setTimeout<"u"?setTimeout(e,Je):e()}function Vt(){return D(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 Xt(e){let t=0,n=Ke(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let c of r){let i=c,l=`${i.functionName??"(anonymous)"}@${i.url}:${i.line}`,m=o.childMap.get(l);m||(m=Ke(t++,i.functionName??"(anonymous)",{url:i.url,line:i.line,col:i.col}),o.childMap.set(l,m),o.children.push(m)),m.hitCount++,o=m}}return Ge(n,e.length),Ye(n)}function Ke(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function Ge(e,t){let n=0;for(let r of e.children)n+=Ge(r,t);return e.totalTimeMs=e.hitCount*Je,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function Ye(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=>Ye(t))}}function et(e,t,n){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=${encodeURIComponent(n)}; path=/`;return}Z(()=>e==="session"?sessionStorage:localStorage)?.setItem(t,n)}function tt(e,t){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;return}Z(()=>e==="session"?sessionStorage:localStorage)?.removeItem(t)}async function nt(){return{localStorage:Ze(Z(()=>localStorage)),sessionStorage:Ze(Z(()=>sessionStorage)),cookies:Kt(),indexedDB:await Jt()}}function Z(e){try{return e()}catch{return null}}function Ze(e){let t={};if(!e)return t;for(let n=0;n<e.length;n++){let r=e.key(n);r!=null&&(t[r]=e.getItem(r)??"")}return t}function Kt(){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("="),r=n>=0?t.slice(0,n):t,o=n>=0?t.slice(n+1):"";return{name:r,value:o,domain:e,path:"/"}})}async function Jt(){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 Qt(n.name)});return t}catch{return[]}}function Qt(e){return new Promise(t=>{try{let n=indexedDB.open(e);n.onsuccess=()=>{let r=n.result,o=Array.from(r.objectStoreNames);r.close(),t(o)},n.onerror=()=>t([])}catch{t([])}})}var Gt=40;function ot(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:rt()}),stop:()=>{}};r("largest-contentful-paint",o=>{let c=o[o.length-1];if(!c)return;let i=c.element;t.lcp={valueMs:c.startTime,element:i?{nodeId:e.nodeIdFor(i),selector:Y(i),rect:Zt(i)}:void 0}}),r("paint",o=>{for(let c of o)c.name==="first-contentful-paint"&&(t.fcp=c.startTime)}),r("layout-shift",o=>{let c=t.cls??0;for(let i of o)i.hadRecentInput||(c+=i.value);t.cls=c}),r("event",o=>{let c=t.inp??0;for(let i of o){let l=i.duration;l>c&&(c=l)}t.inp=c},{durationThreshold:40}),r("longtask",o=>{for(let c of o)t.longTasks.push({ts:e.now(),durationMs:c.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,c,i){try{let l=new PerformanceObserver(m=>c(m.getEntries()));l.observe({type:o,buffered:!0,...i??{}}),n.push(l)}catch{}}return{read:()=>{let o=rt(),{resources:c,resourceSummary:i}=Yt(o?.domInteractiveMs??t.fcp);return{...t,longTasks:t.longTasks.slice(),navigation:o,ttfb:t.ttfb??o?.ttfbMs,resources:c,resourceSummary:i}},stop:()=>n.forEach(o=>o.disconnect())}}function Yt(e){if(typeof performance>"u"||!performance.getEntriesByType)return{};let t=performance.getEntriesByType("resource");if(!t.length)return{};let n=0,r=0;return{resources:t.map(i=>{n+=i.transferSize||0,r+=i.duration;let l=i.requestStart>0?Math.max(0,i.requestStart-i.startTime):void 0,m=e!=null&&i.responseEnd<=e&&(i.initiatorType==="link"||i.initiatorType==="css"||i.initiatorType==="script");return{name:i.name,initiatorType:i.initiatorType||"other",startMs:i.startTime,durationMs:i.duration,blockingMs:l,transferSizeBytes:i.transferSize||void 0,decodedSizeBytes:i.decodedBodySize||void 0,fromCache:i.transferSize===0&&i.decodedBodySize>0,renderBlocking:m}}).sort((i,l)=>l.durationMs-i.durationMs).slice(0,Gt),resourceSummary:{count:t.length,transferBytes:n,durationMs:r}}}function rt(){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 it=1e3;function j(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function en(e={}){let t=new K,n=new G,r=d=>n.idFor(d),o=new $(it),c=new $(it),i=null,l,m=Ae({buffer:o,registry:t,nodeIdFor:r,onEntry:d=>e.onConsole?.(d),now:j}),g=Ue({buffer:c,onEntry:d=>e.onNetwork?.(d),now:j}),a=ot({nodeIdFor:r,now:j}),y=Ve({reg:n,onPicked:d=>e.onPicked?.(d),setPickedNode:d=>i=d});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:d=>d==null?o.all():o.all().filter(h=>h.seq>d),networkBuffer:d=>{let S=[...c.all(),...ze()].sort((C,L)=>C.ts-L.ts);return d==null?S:S.filter(C=>C.ts>d)},evaluate:(d,h)=>$e(d,{registry:t,nodeIdFor:r,now:j,getPicked:()=>i,getLast:()=>l,setLast:S=>l=S},h),expand:d=>({entries:Ie(t.get(d),{registry:t,nodeIdFor:r})}),domCapture:d=>_e(n,d,j),element:d=>Be(n,d),highlight:d=>y.highlight(d),setPicker:d=>y.setEnabled(d),vitals:()=>a.read(),profile:d=>Qe(d,j),storage:()=>nt(),storageSet:(d,h,S)=>et(d,h,S),storageRemove:(d,h)=>tt(d,h),reload:d=>{typeof location<"u"&&location.reload()},reset:()=>{t.clear(),n.clear(),o.clear(),c.clear(),i=null,l=void 0},stop:()=>{m(),g(),a.stop(),y.destroy()}}}function st(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=en(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}var tn=new Set(["inspect.screenshot","inspect.openTarget"]);function ct(e,t,n){return{id:e,url:n.url,title:n.title,viewport:n.viewport,platform:t,isUglyApp:n.isUglyApp,open:!0}}async function at(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();case"inspect.storage.set":e.storageSet(n.area,String(n.key??""),String(n.value??""));return;case"inspect.storage.remove":e.storageRemove(n.area,String(n.key??""));return;case"inspect.network.reload":e.reload(!!n.ignoreCache);return;case"inspect.network.setCacheDisabled":case"inspect.setThrottle":return;default:throw tn.has(t)?new Error(`inspect: ${t} is host-serviced, not an agent method`):new Error(`inspect: unknown channel ${t}`)}}var H="self";function ut(e){let t=st({onConsole:n=>e.onEvent?.(`inspect.console:${H}`,n),onNetwork:n=>e.onEvent?.(`inspect.network:${H}`,n),onPicked:n=>e.onEvent?.(`inspect.picked:${H}`,n)});return{async dispatch(n,r={}){if(n==="inspect.listTargets")return{targets:[ct(H,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({...r,targetId:H})}return at(t,n,r)},stop(){t.stop()}}}function nn(e){return async()=>{let t=await e.invoke("capture.screenshot",void 0),n=typeof window<"u"?window.innerWidth:0,r=typeof window<"u"?window.innerHeight:0,o=typeof window<"u"&&window.devicePixelRatio||1;return{base64:t,width:n,height:r,dpr:o,format:"png"}}}function dt(e){let t=e.platform??e.native?.platform??"web",n=e.signer??(e.native?xe(e.native):void 0),r=e.screenshot??(e.native?nn(e.native):void 0),o={},c=ut({platform:t,screenshot:r,onEvent:(i,l)=>o.host?.broadcast(i,l)});return o.host=Pe({socket:e.socket,signer:n,iceServers:e.iceServers,rtcFactory:e.rtcFactory,onInvoke:(i,l)=>c.dispatch(i,l??{})}),{stop(){o.host?.stop(),c.stop()},peerCount:()=>o.host?.peerCount()??0}}var q=window,N=q.__uglyInspectBootstrap;if(N&&q.UglyNative&&!q.__uglyInspectHostInstalled){q.__uglyInspectHostInstalled=!0;let e=q.UglyNative,t=Te({requests:{},messages:{},url:N.wsUrl,getUrlParams:()=>({token:N.token,deviceId:N.deviceId,deviceLabel:N.deviceLabel??N.platform,inspectHost:"true",isHost:"true"})});t.connect(N.token).then(()=>dt({socket:t,native:e,platform:N.platform})).catch(()=>{})}})();
1
+ "use strict";(()=>{function Re(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,r=0;function o(){return String(++r)}let c=new Map,i=null,l=!1,m=!1,g=!1,a=0,y=!1,k=!1,d=e.initialFocus??!0,h=e.keepConnectedWhenUnfocused??!1,v=null,P="connecting",L=1e3,x=3e4,Z=5,fe=1e3,ee=!1,ft=3e4,te=null,pe=null,pt=null,ne=null,_=null,re=[],oe=[],b=new Map,I=new Map,U=new Map;function me(){te=new Promise((u,s)=>{pe=u,pt=s}),te.catch(()=>{})}me();function ie(u,s){P=u,typeof window<"u"&&window.dispatchEvent(new CustomEvent("ws-connection-state",{detail:{state:u,...s}}))}function mt(u){for(let{reject:s,timeout:f}of b.values())clearTimeout(f),s(new Error(u));b.clear(),I.clear(),U.clear()}function ge(u){for(let[s,f]of b)clearTimeout(f.timeout),f.retry?we(oe,s):(b.delete(s),f.reject(new Error(u?"WebSocket disconnected (idle)":"WebSocket disconnected")))}function ye(u){i.send(JSON.stringify(u))}function we(u,s){u.length>=fe&&(u.shift(),ee||(console.warn(`[socket] queue exceeded ${fe} \u2014 dropping oldest message(s)`),ee=!0)),u.push(s)}function z(u){g&&l&&i?.readyState===WebSocket.OPEN?i.send(u):we(re,u)}function ke(u,s,f=6e4,p=!0){if(typeof u=="object"&&u!==null){z(JSON.stringify(u));return}return new Promise((w,T)=>{let E=o(),R=JSON.stringify({type:u,id:E,data:s}),O=setTimeout(()=>{b.delete(E),T(new Error(`Request timeout: ${u}`))},f);b.set(E,{resolve:w,reject:T,timeout:O,serialized:R,retry:p,timeoutMs:f}),z(R)})}function he(u,s){z(JSON.stringify({type:u,data:s}))}function be(){W(),!(!d&&!h)&&(v=setInterval(()=>{l&&(d||h)&&he("ping",{})},ft))}function W(){v&&(clearInterval(v),v=null)}function gt(){for(let[u,s]of M)S(s.type,{...s.params,subId:u}).catch(f=>console.error("[resubscribe]",f))}let M=new Map;function yt(){for(;oe.length>0&&i?.readyState===WebSocket.OPEN;){let u=oe.shift(),s=b.get(u);s&&(i.send(s.serialized),s.timeoutMs!==null&&(s.timeout=setTimeout(()=>{b.delete(u),s.reject(new Error(`Timeout: retry ${u}`))},s.timeoutMs)))}}function wt(){for(;re.length>0&&i?.readyState===WebSocket.OPEN;)i.send(re.shift());yt(),e.buildId&&ke("buildId",{}).then(u=>{u!==e.buildId&&typeof window<"u"&&window.dispatchEvent(new CustomEvent("version-mismatch"))}).catch(()=>{}),y&&(gt(),y=!1)}function se(u,s){typeof window<"u"&&window.dispatchEvent(new CustomEvent(u,{detail:s}))}function kt(u){let s=JSON.parse(u.data,e.messageReviver);switch(s.type){case"ready":g=!0,wt();return;case"authFailed":se("auth-failed",{});return;case"track":s.subId&&I.get(s.subId)?.(s.data);return;case"frame":s.subId&&U.get(s.subId)?.(s.data);return;case"response":if(s.id){let f=b.get(s.id);f&&(clearTimeout(f.timeout),b.delete(s.id),f.resolve(s.data??s.result))}return;case"pushNotification":se("push-notification-received",s.data);return;case"server-draining":se("server-draining",s.data);return;default:{if(s.id&&s.type==="error"){let p=b.get(s.id);p&&(clearTimeout(p.timeout),b.delete(s.id),p.reject(new Error(s.error??"Unknown error")));return}if(s.id){let p=b.get(s.id);if(p){clearTimeout(p.timeout),b.delete(s.id),p.resolve(s.data??s.result);return}}e.onCustomMessage?.(s);let f=c.get(s.type);if(f)for(let p of f)p(s.data)}}}function S(u,s,f=6e4,p=!1){return new Promise((w,T)=>{let E=o(),R=JSON.stringify({id:E,type:u,payload:s}),O=f===null?null:setTimeout(()=>{b.delete(E),T(new Error(`Timeout: ${u}`))},f);b.set(E,{resolve:w,reject:T,timeout:O??setTimeout(()=>{},0),serialized:R,retry:p,timeoutMs:f}),z(R)})}function ve(u){if(u!==d)if(d=u,u)l?be():(a=0,ce());else{if(h)return;W(),k=!0}}typeof document<"u"&&(d=document.visibilityState==="visible",document.addEventListener("visibilitychange",()=>{ve(document.visibilityState==="visible")}));function ce(){if(m)return;m=!0,g=!1;let u=new URL(n,typeof window<"u"?window.location.href:void 0);if(e.getUrlParams)for(let[s,f]of Object.entries(e.getUrlParams()))u.searchParams.set(s,f);i=new WebSocket(u.toString()),i.addEventListener("message",kt),i.addEventListener("open",()=>{m=!1;let s=a>0,f=k;if(l=!0,y=s||f,a=0,ee=!1,k=!1,ie("connected",{wasReconnect:s,wasIdleReconnect:f}),pe?.(),d&&be(),ne){let p;_!==null&&b.has(_)?p=_:(p=o(),b.set(p,{resolve:()=>{},reject:()=>{},timeout:setTimeout(()=>b.delete(p),3e4),serialized:"",retry:!1,timeoutMs:3e4})),_=null,ye({id:p,type:"auth",payload:{token:ne}})}}),i.addEventListener("close",()=>{if(m=!1,l=!1,W(),!d&&!h){k=!0,ie("idle-disconnected"),ge(!0);return}ie("reconnecting",{attempt:a+1}),ge(!1);let s=Math.min(x,L*Math.pow(2,Math.min(a,Z)));me(),setTimeout(()=>{a++,ce()},s)}),i.addEventListener("error",()=>{})}return ce(),{connect(u){ne=u;let s=o(),f=new Promise((p,w)=>{b.set(s,{resolve:T=>{let E=T;p({user:E.user,appToken:E.appToken})},reject:w,timeout:setTimeout(()=>{b.delete(s),w(new Error("Auth timeout"))},3e4),serialized:"",retry:!1,timeoutMs:3e4})});return i?.readyState===WebSocket.OPEN?ye({id:s,type:"auth",payload:{token:u}}):_=s,f},request(u,s,f){let p=f?.timeoutMs===void 0?6e4:f.timeoutMs;return S("request",{name:u,input:s},p,f?.retry??!0)},async requestStream(u,s,f,p){let w=await fetch(`/api/${u}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},credentials:"include",body:JSON.stringify({input:s}),...p?.signal?{signal:p.signal}:{}});if(!w.ok||!w.body){let B=await w.json().catch(()=>({}));if(B.error)throw new Error(B.error);return B.result}let T=w.body.getReader(),E=new TextDecoder("utf-8"),R="",O,Se=!1;for(;!Se;){let{value:B,done:ht}=await T.read();if(ht)break;R+=E.decode(B,{stream:!0});let ae;for(;(ae=R.indexOf(`
2
+ `))!==-1;){let Ee=R.slice(0,ae).replace(/\r$/,"");if(R=R.slice(ae+1),!Ee.startsWith("data:"))continue;let Te=Ee.slice(5).trimStart();if(!Te)continue;let A;try{A=JSON.parse(Te)}catch{continue}if(A.type==="__result__"){O=A.result,Se=!0;break}if(A.type==="__error__")throw new Error(A.error??`request ${u} failed`);f(A)}}return O},getDoc(u,s){return S("request",{name:"storeGetDoc",input:{collection:u,id:s}}).then(f=>f.item)},getDocs(u,s,f){return S("request",{name:"storeGetDocs",input:{collection:u,filter:s,...f}}).then(p=>p.items)},getQuery(u,s,f){return S("request",{name:"storeGetQuery",input:{collection:u,query:s,...f}}).then(p=>p.items)},trackDoc(u,s,f){let p=o();return I.set(p,f),M.set(p,{type:"trackDoc",params:{collection:u,id:s}}),S("trackDoc",{collection:u,id:s,subId:p}).catch(w=>{console.error("[trackDoc]",w)}),()=>{I.delete(p),M.delete(p),S("unsubscribe",{subId:p}).catch(()=>{})}},trackDocs(u,s,f,p){let w=o();return I.set(w,f),p&&U.set(w,p),M.set(w,{type:"trackDocs",params:{collection:u,keys:s.keys,filter:s.filter,sort:s.sort,limit:s.limit,skip:s.skip}}),S("trackDocs",{collection:u,keys:s.keys,filter:s.filter,subId:w,sort:s.sort,limit:s.limit,skip:s.skip}).catch(T=>{console.error("[trackDocs]",T)}),()=>{I.delete(w),U.delete(w),M.delete(w),S("unsubscribe",{subId:w}).catch(()=>{})}},find(u,s,f){return S("request",{name:"storeGetDocs",input:{collection:u,filter:s,...f}}).then(p=>p.items)},trackQuery(u,s,f){let p=o();return I.set(p,f),M.set(p,{type:"trackQuery",params:{collection:u,keys:s.keys,filter:s.filter,sort:s.sort,limit:s.limit,skip:s.skip}}),S("trackQuery",{collection:u,keys:s.keys,filter:s.filter,subId:p,sort:s.sort,limit:s.limit,skip:s.skip}).catch(w=>{console.error("[trackQuery]",w)}),()=>{I.delete(p),M.delete(p),S("unsubscribe",{subId:p}).catch(()=>{})}},async uploadFile(u,s){let{uploadUrl:f,resultUrl:p}=await S("request",{name:"uploadUrl",input:{key:s,contentType:u.type}}),w=await fetch(f,{method:"PUT",body:u,headers:{"Content-Type":u.type}});if(!w.ok)throw new Error(`Upload failed: ${w.status} ${w.statusText}`);return p},emit:he,send:ke,on(u,s){let f=c.get(u);return f||(f=new Set,c.set(u,f)),f.add(s),()=>{f.delete(s),f.size===0&&c.delete(u)}},waitForConnection(u=3e4){return l?Promise.resolve():new Promise((s,f)=>{let p=setTimeout(()=>f(new Error("Connection timeout")),u);te?.then(()=>{clearTimeout(p),s()}).catch(w=>{clearTimeout(p),f(w instanceof Error?w:new Error(String(w)))})})},get connectionState(){return P},setFocused(u){ve(u)},disconnect(){mt("Disconnected"),W(),i?.close(),i=null}}}var an=new TextEncoder;function V(e){let t=/a=fingerprint:(\S+)\s+([0-9A-Fa-f:]+)/.exec(e||"");return t?`${t[1].toLowerCase()} ${t[2].toUpperCase()}`:null}function Pe(e){return e??{}}function xe(e){let t=e.rtcFactory??(g=>new RTCPeerConnection(g)),n=new Map,r=new Set,o=[];async function c(g){let a=String(g.from??"");if(!a)return;let y=String(g.sdp??""),k=String(g.origin??"");if(e.signer&&!await e.signer.verify("client",V(y)??"",String(g.fpTag??""))){e.socket.emit("rtc:error",{to:a,reason:"fingerprint-auth-failed"});return}try{n.get(a)?.pc.close()}catch{}let d=t({iceServers:e.iceServers??[]}),h={pc:d,dc:null,origin:k};n.set(a,h),d.onicecandidate=x=>{x.candidate&&e.socket.emit("rtc:ice",{to:a,candidate:x.candidate.toJSON()})},d.ondatachannel=x=>{h.dc=x.channel,x.channel.onmessage=Z=>{l(h,x.channel,Z.data)}},await d.setRemoteDescription({type:"offer",sdp:y});let v=await d.createAnswer();await d.setLocalDescription(v);let P=d.localDescription?.sdp??v.sdp??"",L=e.signer?await e.signer.sign("host",V(P)??""):void 0;e.socket.emit("rtc:answer",{to:a,sdp:P,fpTag:L})}async function i(g){let a=n.get(String(g.from??""));if(a)try{await a.pc.addIceCandidate(g.candidate)}catch{}}async function l(g,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 d=await e.onInvoke(String(k.channel),k.payload,g.origin);m(a,{t:"res",id:k.id,ok:!0,result:d})}catch(d){m(a,{t:"res",id:k.id,ok:!1,error:String(d?.message??d)})}else if(k.t==="sub"&&k.id!==void 0)r.add({dc:a,event:String(k.channel??""),id:k.id}),m(a,{t:"res",id:k.id,ok:!0,result:{snapshot:null}});else if(k.t==="unsub"&&k.id!==void 0)for(let d of[...r])d.dc===a&&d.id===k.id&&r.delete(d)}function m(g,a){try{g.readyState==="open"&&g.send(JSON.stringify(a))}catch{}}return o.push(e.socket.on("rtc:offer",g=>{c(Pe(g))})),o.push(e.socket.on("rtc:ice",g=>{i(Pe(g))})),{stop(){for(let g of o)try{g()}catch{}for(let g of n.values())try{g.pc.close()}catch{}n.clear(),r.clear()},broadcast(g,a){for(let y of r)y.event===g&&m(y.dc,{t:"evt",event:g,data:a})},peerCount:()=>n.size}}function Ce(e){return{sign:async(t,n)=>(await e.invoke("proxy.signFingerprint",{role:t,fingerprint:n})).tag,verify:async(t,n,r)=>(await e.invoke("proxy.verifyFingerprint",{role:t,fingerprint:n,tag:r})).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 r=0,o=this.items.length;for(;r<o;){let c=r+o>>>1;n(this.items[c])<t?r=c+1:o=c}return this.items.slice(r)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var X=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 vt(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 Ie(e){return Object.getPrototypeOf(e)?.constructor?.name}function C(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(vt(e))return{type:"node",className:e.nodeName??"Node",preview:Tt(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:Pt(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(Rt(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:De(e,t)};if(e instanceof Set)return{type:"set",className:"Set",size:e.size,objectId:t.registry.put(e),preview:`Set(${e.size})`,entries:Oe(e,t)};if(Array.isArray(e))return{type:"array",className:"Array",size:e.length,objectId:t.registry.put(e),preview:`Array(${e.length})`,entries:Me(e,t)};let r=Object.keys(n);return{type:"object",className:Ie(n)??"Object",size:r.length,objectId:t.registry.put(n),preview:St(n,r),entries:ue(n,r,t)}}function Ne(e,t){if(e instanceof Map)return De(e,t,1/0).map(n=>n.value);if(e instanceof Set)return Oe(e,t,1/0).map(n=>n.value);if(Array.isArray(e))return Me(e,t,1/0).map(n=>n.value);if(e instanceof Error)return ue({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 ue(e,n,t,1/0).map(r=>r.value)}return[]}function Me(e,t,n=5){let r=[];for(let o=0;o<e.length&&o<n;o++)r.push({key:String(o),value:C(e[o],t)});return r}function ue(e,t,n,r=5){let o=[];for(let c=0;c<t.length&&c<r;c++){let i=t[c],l;try{l=e[i]}catch{l="(getter threw)"}o.push({key:i,value:C(l,n)})}return o}function De(e,t,n=5){let r=[],o=0;for(let[c,i]of e){if(o++>=n)break;r.push({key:C(c,t),value:C(i,t)})}return r}function Oe(e,t,n=5){let r=[],o=0;for(let c of e){if(o++>=n)break;r.push({value:C(c,t)})}return r}function St(e,t){let n=t.slice(0,5).map(o=>{let c;try{c=e[o]}catch{c="\u2026"}return`${o}: ${Et(c)}`}),r=t.length>5?", \u2026":"";return F(`{${n.join(", ")}${r}}`,100)}function Et(e){let t=typeof e;return t==="string"?`"${F(e,20)}"`:t==="object"&&e!==null?Array.isArray(e)?`Array(${e.length})`:Ie(e)??"Object":String(e)}function Tt(e){let t=e;if(t.nodeType===1){let n=(t.nodeName??"").toLowerCase(),r=t.id?`#${t.id}`:"",o=typeof t.className=="string"&&t.className?`.${t.className.trim().split(/\s+/).join(".")}`:"";return F(`<${n}${r}${o}>`,100)}return t.nodeName??"Node"}function Rt(e){return typeof e?.then=="function"}function Pt(e){try{return e.toISOString()}catch{return"Invalid Date"}}var Ae=["log","info","warn","error","debug"];function je(e){if(typeof console>"u")return()=>{};let t=0,n={};for(let i of Ae){let l=console[i];typeof l=="function"&&(n[i]=l,console[i]=(...m)=>{try{c(i,m)}catch{}l.apply(console,m)})}let r=i=>{c("error",[i.message],{stack:D(i.error?.stack),source:{url:i.filename||"",line:i.lineno||0,col:i.colno||0}})},o=i=>{let l=i.reason;c("error",[`Unhandled rejection: ${l?.message??String(i.reason)}`],{stack:D(l?.stack)})};typeof window<"u"&&(window.addEventListener("error",r),window.addEventListener("unhandledrejection",o));function c(i,l,m){let g=l.map(k=>C(k,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=m?.stack??D(new Error().stack,1),y={seq:++t,ts:e.now(),level:i,args:g,text:xt(l),stack:a.length?a:void 0,source:m?.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 i of Ae){let l=n[i];l&&(console[i]=l)}typeof window<"u"&&(window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",o))}}function xt(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 D(e,t=0){if(!e)return[];let n=[],r=e.split(`
3
+ `);for(let o of r){let c=o.trim(),i=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(c)||/^at\s+(.*?):(\d+):(\d+)$/.exec(c);if(i){i.length===5?n.push({functionName:i[1],url:i[2],line:+i[3],col:+i[4]}):n.push({functionName:"(anonymous)",url:i[1],line:+i[2],col:+i[3]});continue}i=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(c),i&&n.push({functionName:i[1]||"(anonymous)",url:i[2],line:+i[3],col:+i[4]})}return n.slice(t)}function Be(e,t,n=Date.now){let r=t!=null&&t>0?t:40,o=typeof document<"u"&&document.documentElement?de(document.documentElement,e,r,0):Mt();return{documentUrl:typeof location<"u"?location.href:"",capturedAt:n(),root:o}}function de(e,t,n,r){let o={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&&(o.textContent=a.slice(0,200)),o}if(e.nodeType!==Node.ELEMENT_NODE)return o;let c=e;if(o.attributes=It(c),o.rect=Nt(c),r>=n)return o;let i=c.shadowRoot;i&&(o.shadowRoots=Array.from(i.childNodes).filter(_e).map(a=>de(a,t,n,r+1)));let l=[],m=Le(c,"before");m&&l.push(m);for(let a of Array.from(c.childNodes))_e(a)&&l.push(de(a,t,n,r+1));let g=Le(c,"after");return g&&l.push(g),l.length&&(o.children=l),o}function Le(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:`${Ct(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function Ct(e){return e.__inspectPseudoBase??e.tagName}function _e(e){return e.nodeType===Node.TEXT_NODE?!!(e.textContent??"").trim():e.nodeType===Node.ELEMENT_NODE||e.nodeType===Node.COMMENT_NODE}function It(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Nt(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function Mt(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function $e(e,t){let n=Dt(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let r=getComputedStyle(n),o=Ft(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:$t(n),computedStyles:Ot(r),matchedRules:At(n),boxModel:Lt(n,r,o),eventListeners:_t(n),accessibility:Bt(n),rect:o}}function Dt(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 Ot(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function At(e){let t=[];if(typeof document>"u")return t;for(let n of Array.from(document.styleSheets)){let r;try{r=n.cssRules}catch{continue}let o=n.href??void 0;for(let c of Array.from(r)){if(!(c instanceof CSSStyleRule))continue;let i=!1;try{i=e.matches(c.selectorText)}catch{i=!1}i&&t.push({selector:c.selectorText,source:o?{url:o,line:0,col:0}:void 0,props:jt(c.style)})}}return t}function jt(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function Lt(e,t,n){let r=(o,c)=>({top:K(t.getPropertyValue(`${o}-top${c}`)),right:K(t.getPropertyValue(`${o}-right${c}`)),bottom:K(t.getPropertyValue(`${o}-bottom${c}`)),left:K(t.getPropertyValue(`${o}-left${c}`))});return{content:n,padding:r("padding",""),border:r("border","-width"),margin:r("margin","")}}function _t(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let r=n(e),o=[];for(let[c,i]of Object.entries(r))for(let l of i)o.push({type:c,useCapture:l.useCapture,passive:l.passive});return o}catch{return[]}}function Bt(e){let t={};for(let o of Array.from(e.attributes))o.name.startsWith("aria-")&&(t[o.name]=o.value);let n=e.getAttribute("role")??void 0,r=e.getAttribute("aria-label")??e.title??(e.textContent??"").trim().slice(0,80)??void 0;return{role:n,name:r||void 0,properties:t}}function $t(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Ft(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 Fe(e,t,n){let r=t.now();try{let o=Ht(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&qt(o)&&(o=await o),t.setLast(o),{ok:!0,value:C(o,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-r}}catch(o){let c=o;return{ok:!1,exception:{text:`${c?.name??"Error"}: ${c?.message??String(o)}`,stack:D(c?.stack)},tookMs:t.now()-r}}}function Ht(e,t){let n=Object.keys(t);if(n.length===0)return(0,eval)(e);let r=new Function(...n,`return (${e});`);try{return r(...n.map(o=>t[o]))}catch(o){if(o instanceof SyntaxError)return new Function(...n,e)(...n.map(i=>t[i]));throw o}}function qt(e){return typeof e?.then=="function"}var J=64*1024;function ze(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,r=window.fetch?.bind(window);r&&(window.fetch=async(m,g)=>{let a=e.now(),y=(g?.method||(m instanceof Request?m.method:"GET")).toUpperCase(),k=m instanceof Request?m.url:String(m),d={id:n(),ts:a,method:y,url:k,resourceType:"fetch",requestHeaders:qe(g?.headers??(m instanceof Request?m.headers:void 0)),requestBody:Ue(g?.body),timing:{startMs:a,durationMs:0}};try{let h=await r(m,g);return d.status=h.status,d.responseHeaders=qe(h.headers),d.timing.durationMs=e.now()-a,d.fromCache=h.fromCache,await Wt(h,d),l(d),h}catch(h){throw d.failed=!0,d.timing.durationMs=e.now()-a,d.responseBody={kind:"text",data:String(h?.message??h)},l(d),h}});let o=window.XMLHttpRequest,c=o?.prototype.open,i=o?.prototype.send;o&&c&&i&&(o.prototype.open=function(g,a,...y){return this.__inspect={method:g.toUpperCase(),url:a,start:0},c.apply(this,[g,a,...y])},o.prototype.send=function(g){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:zt(this.getAllResponseHeaders()),requestBody:Ue(g),responseBody:Vt(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};l(y)})),i.apply(this,[g])});function l(m){e.buffer.push(m),e.onEntry?.(m)}return()=>{r&&(window.fetch=r),o&&c&&(o.prototype.open=c),o&&i&&(o.prototype.send=i)}}function He(e){return e.responseStatus||void 0}function We(){if(typeof performance>"u"||!performance.getEntriesByType)return[];let e=performance.timeOrigin??0,t=[],n=performance.getEntriesByType("navigation")[0];n&&t.push({id:"nav",ts:e+n.startTime,method:"GET",url:n.name||(typeof location<"u"?location.href:""),status:He(n),resourceType:"document",requestHeaders:{},timing:{startMs:e+n.startTime,durationMs:n.duration,ttfbMs:n.responseStart-n.startTime},sizeBytes:n.transferSize||void 0});for(let r of performance.getEntriesByType("resource"))r.initiatorType==="fetch"||r.initiatorType==="xmlhttprequest"||t.push({id:`res:${Math.round(r.startTime)}:${r.name}`,ts:e+r.startTime,method:"GET",url:r.name,status:He(r),resourceType:Ut(r.initiatorType),requestHeaders:{},timing:{startMs:e+r.startTime,durationMs:r.duration},sizeBytes:r.transferSize||r.decodedBodySize||void 0,fromCache:r.transferSize===0&&r.decodedBodySize>0});return t}function Ut(e){switch(e){case"img":case"image":return"img";case"css":case"link":return"css";case"script":return"script";case"font":return"font";default:return e||"other"}}function qe(e){let t={};if(!e)return t;if(typeof Headers<"u"&&e instanceof Headers)e.forEach((n,r)=>t[r]=n);else if(Array.isArray(e))for(let[n,r]of e)t[n]=r;else Object.assign(t,e);return t}function zt(e){let t={};for(let n of e.split(`\r
4
+ `)){let r=n.indexOf(":");r>0&&(t[n.slice(0,r).trim().toLowerCase()]=n.slice(r+1).trim())}return t}function Ue(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 Wt(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 r=await e.clone().text();t.sizeBytes=r.length;let o=/json/i.test(n)?"json":"text";t.responseBody={kind:o,data:r.slice(0,J)}}catch{t.responseBody={kind:"omitted"}}}function Vt(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 r=`n${++this.seq}`;return this.idOf.set(t,r),this.byId.set(r,t),r}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"),r=e.tagName.toLowerCase();return e.id?`${r}#${e.id}`:n?`${r}[role=${n}]`:r}var Ve="__ugly_inspect_overlay__";function Xe(e){if(typeof document>"u")return{setEnabled:()=>{},highlight:()=>{},destroy:()=>{}};let t=!1,n=null;function r(){if(n)return n;let a=document.createElement("div");return a.id=Ve,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 o(a){let y=r();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=l(a.clientX,a.clientY);y&&o(le(y))},i=a=>{let y=l(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)}),m(!1))};function l(a,y){n&&(n.style.display="none");let k=document.elementFromPoint(a,y);return k&&k.id!==Ve?k:null}function m(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",c,!0),window.addEventListener("pointerdown",i,!0)):(window.removeEventListener("pointermove",c,!0),window.removeEventListener("pointerdown",i,!0),o(null)))}function g(a){if(!a){o(null);return}let y=e.reg.get(a);y?.nodeType===1&&o(le(y))}return{setEnabled:m,highlight:g,destroy:()=>{m(!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 Qe=4;async function Ge(e,t){let n=t(),r=[];await new Promise(c=>{let i=()=>{r.push(Xt()),t()-n>=e?c():Ke(i)};Ke(i)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:Kt(r)}}function Ke(e){typeof setTimeout<"u"?setTimeout(e,Qe):e()}function Xt(){return D(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 Kt(e){let t=0,n=Je(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let c of r){let i=c,l=`${i.functionName??"(anonymous)"}@${i.url}:${i.line}`,m=o.childMap.get(l);m||(m=Je(t++,i.functionName??"(anonymous)",{url:i.url,line:i.line,col:i.col}),o.childMap.set(l,m),o.children.push(m)),m.hitCount++,o=m}}return Ye(n,e.length),Ze(n)}function Je(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function Ye(e,t){let n=0;for(let r of e.children)n+=Ye(r,t);return e.totalTimeMs=e.hitCount*Qe,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function Ze(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=>Ze(t))}}function tt(e,t,n){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=${encodeURIComponent(n)}; path=/`;return}Y(()=>e==="session"?sessionStorage:localStorage)?.setItem(t,n)}function nt(e,t){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;return}Y(()=>e==="session"?sessionStorage:localStorage)?.removeItem(t)}async function rt(){return{localStorage:et(Y(()=>localStorage)),sessionStorage:et(Y(()=>sessionStorage)),cookies:Jt(),indexedDB:await Qt()}}function Y(e){try{return e()}catch{return null}}function et(e){let t={};if(!e)return t;for(let n=0;n<e.length;n++){let r=e.key(n);r!=null&&(t[r]=e.getItem(r)??"")}return t}function Jt(){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("="),r=n>=0?t.slice(0,n):t,o=n>=0?t.slice(n+1):"";return{name:r,value:o,domain:e,path:"/"}})}async function Qt(){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 Gt(n.name)});return t}catch{return[]}}function Gt(e){return new Promise(t=>{try{let n=indexedDB.open(e);n.onsuccess=()=>{let r=n.result,o=Array.from(r.objectStoreNames);r.close(),t(o)},n.onerror=()=>t([])}catch{t([])}})}var Yt=40;function it(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:ot()}),stop:()=>{}};r("largest-contentful-paint",o=>{let c=o[o.length-1];if(!c)return;let i=c.element;t.lcp={valueMs:c.startTime,element:i?{nodeId:e.nodeIdFor(i),selector:G(i),rect:en(i)}:void 0}}),r("paint",o=>{for(let c of o)c.name==="first-contentful-paint"&&(t.fcp=c.startTime)}),r("layout-shift",o=>{let c=t.cls??0;for(let i of o)i.hadRecentInput||(c+=i.value);t.cls=c}),r("event",o=>{let c=t.inp??0;for(let i of o){let l=i.duration;l>c&&(c=l)}t.inp=c},{durationThreshold:40}),r("longtask",o=>{for(let c of o)t.longTasks.push({ts:e.now(),durationMs:c.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,c,i){try{let l=new PerformanceObserver(m=>c(m.getEntries()));l.observe({type:o,buffered:!0,...i??{}}),n.push(l)}catch{}}return{read:()=>{let o=ot(),{resources:c,resourceSummary:i}=Zt(o?.domInteractiveMs??t.fcp);return{...t,longTasks:t.longTasks.slice(),navigation:o,ttfb:t.ttfb??o?.ttfbMs,resources:c,resourceSummary:i}},stop:()=>n.forEach(o=>o.disconnect())}}function Zt(e){if(typeof performance>"u"||!performance.getEntriesByType)return{};let t=performance.getEntriesByType("resource");if(!t.length)return{};let n=0,r=0;return{resources:t.map(i=>{n+=i.transferSize||0,r+=i.duration;let l=i.requestStart>0?Math.max(0,i.requestStart-i.startTime):void 0,m=e!=null&&i.responseEnd<=e&&(i.initiatorType==="link"||i.initiatorType==="css"||i.initiatorType==="script");return{name:i.name,initiatorType:i.initiatorType||"other",startMs:i.startTime,durationMs:i.duration,blockingMs:l,transferSizeBytes:i.transferSize||void 0,decodedSizeBytes:i.decodedBodySize||void 0,fromCache:i.transferSize===0&&i.decodedBodySize>0,renderBlocking:m}}).sort((i,l)=>l.durationMs-i.durationMs).slice(0,Yt),resourceSummary:{count:t.length,transferBytes:n,durationMs:r}}}function ot(){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 en(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var st=1e3;function j(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function tn(e={}){let t=new X,n=new Q,r=d=>n.idFor(d),o=new $(st),c=new $(st),i=null,l,m=je({buffer:o,registry:t,nodeIdFor:r,onEntry:d=>e.onConsole?.(d),now:j}),g=ze({buffer:c,onEntry:d=>e.onNetwork?.(d),now:j}),a=it({nodeIdFor:r,now:j}),y=Xe({reg:n,onPicked:d=>e.onPicked?.(d),setPickedNode:d=>i=d});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:d=>d==null?o.all():o.all().filter(h=>h.seq>d),networkBuffer:d=>{let v=[...c.all(),...We()].sort((P,L)=>P.ts-L.ts);return d==null?v:v.filter(P=>P.ts>d)},evaluate:(d,h)=>Fe(d,{registry:t,nodeIdFor:r,now:j,getPicked:()=>i,getLast:()=>l,setLast:v=>l=v},h),expand:d=>({entries:Ne(t.get(d),{registry:t,nodeIdFor:r})}),domCapture:d=>Be(n,d,j),element:d=>$e(n,d),highlight:d=>y.highlight(d),setPicker:d=>y.setEnabled(d),vitals:()=>a.read(),profile:d=>Ge(d,j),storage:()=>rt(),storageSet:(d,h,v)=>tt(d,h,v),storageRemove:(d,h)=>nt(d,h),reload:d=>{typeof location<"u"&&location.reload()},reset:()=>{t.clear(),n.clear(),o.clear(),c.clear(),i=null,l=void 0},stop:()=>{m(),g(),a.stop(),y.destroy()}}}function ct(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=tn(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}var nn=new Set(["inspect.screenshot","inspect.openTarget"]);function at(e,t,n){return{id:e,url:n.url,title:n.title,viewport:n.viewport,platform:t,isUglyApp:n.isUglyApp,open:!0}}async function ut(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();case"inspect.storage.set":e.storageSet(n.area,String(n.key??""),String(n.value??""));return;case"inspect.storage.remove":e.storageRemove(n.area,String(n.key??""));return;case"inspect.network.reload":e.reload(!!n.ignoreCache);return;case"inspect.network.setCacheDisabled":case"inspect.setThrottle":return;default:throw nn.has(t)?new Error(`inspect: ${t} is host-serviced, not an agent method`):new Error(`inspect: unknown channel ${t}`)}}var H="self";function dt(e){let t=ct({onConsole:n=>e.onEvent?.(`inspect.console:${H}`,n),onNetwork:n=>e.onEvent?.(`inspect.network:${H}`,n),onPicked:n=>e.onEvent?.(`inspect.picked:${H}`,n)});return{async dispatch(n,r={}){if(n==="inspect.listTargets")return{targets:[at(H,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({...r,targetId:H})}return ut(t,n,r)},stop(){t.stop()}}}function rn(e){return async()=>{let t=await e.invoke("capture.screenshot",void 0),n=typeof window<"u"?window.innerWidth:0,r=typeof window<"u"?window.innerHeight:0,o=typeof window<"u"&&window.devicePixelRatio||1;return{base64:t,width:n,height:r,dpr:o,format:"png"}}}function lt(e){let t=e.platform??e.native?.platform??"web",n=e.signer??(e.native?Ce(e.native):void 0),r=e.screenshot??(e.native?rn(e.native):void 0),o={},c=dt({platform:t,screenshot:r,onEvent:(i,l)=>o.host?.broadcast(i,l)});return o.host=xe({socket:e.socket,signer:n,iceServers:e.iceServers,rtcFactory:e.rtcFactory,onInvoke:(i,l)=>c.dispatch(i,l??{})}),{stop(){o.host?.stop(),c.stop()},peerCount:()=>o.host?.peerCount()??0}}var q=window,N=q.__uglyInspectBootstrap;if(N&&q.UglyNative&&!q.__uglyInspectHostInstalled){q.__uglyInspectHostInstalled=!0;let e=q.UglyNative,t=Re({requests:{},messages:{},url:N.wsUrl,getUrlParams:()=>({token:N.token,deviceId:N.deviceId,deviceLabel:N.deviceLabel??N.platform,inspectHost:"true",isHost:"true"})});t.connect(N.token).then(()=>lt({socket:t,native:e,platform:N.platform})).catch(()=>{})}})();
@@ -1 +1 @@
1
- {"version":3,"file":"MdastViewer.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,OAAO,EAUL,sBAAsB,EAKvB,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;AA6BtD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yGAAyG;IACzG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAuGlD;AAmpBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;EAMvD"}
1
+ {"version":3,"file":"MdastViewer.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,OAAO,EAYL,sBAAsB,EAKvB,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;AAgCtD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yGAAyG;IACzG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA4GlD;AAwzBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;EAMvD"}
@@ -20,6 +20,7 @@ const MdastViewerContext = createContext({
20
20
  scrollToView: false,
21
21
  isDark: false,
22
22
  onCheckboxToggle: undefined,
23
+ footnoteNumbers: new Map(),
23
24
  });
24
25
  function useMdastViewerData() {
25
26
  return useContext(MdastViewerContext);
@@ -97,6 +98,9 @@ export function MdastViewer(props) {
97
98
  };
98
99
  }, [priorityOffset, shouldScroll, markdown, ast, scrollView]);
99
100
  const themeClass = props.isDark ? 'prosemirror-dark' : 'prosemirror-light';
101
+ // Number footnotes by first-reference order so refs and the Notes list agree
102
+ // (the def list order in the source can differ from citation order).
103
+ const footnoteNumbers = useMemo(() => collectFootnoteOrder(ast), [ast]);
100
104
  return (_jsx(MdastViewerContext.Provider, { value: {
101
105
  width: props.width,
102
106
  textIndex: props.textIndex ?? undefined,
@@ -106,6 +110,7 @@ export function MdastViewer(props) {
106
110
  isDark: props.isDark ?? false,
107
111
  onCheckboxToggle: props.onCheckboxToggle,
108
112
  priorityOffset: props.priorityOffset,
113
+ footnoteNumbers,
109
114
  }, children: _jsx("div", { ref: rootRef, className: `ProseMirror ${themeClass}`, style: {
110
115
  maxWidth: props.width,
111
116
  color: props.color,
@@ -114,6 +119,43 @@ export function MdastViewer(props) {
114
119
  transformOrigin: props.scale ? 'top left' : undefined,
115
120
  }, children: _jsx(MdastNodeRenderer, { node: ast }) }) }));
116
121
  }
122
+ // --- Footnotes ---
123
+ /** Stable DOM ids for footnote ref <-> definition cross-linking. */
124
+ const footnoteDefDomId = (id) => `mdast-fn-${id}`;
125
+ const footnoteRefDomId = (id) => `mdast-fnref-${id}`;
126
+ /**
127
+ * Number footnotes by FIRST-REFERENCE order (the order they're cited in the
128
+ * body), so the inline marker and the Notes list agree even when the source
129
+ * lists the definitions in a different order. Notes that are defined but never
130
+ * referenced are appended after, so each one still gets a number.
131
+ */
132
+ function collectFootnoteOrder(root) {
133
+ const order = new Map();
134
+ const defined = new Set();
135
+ const walk = (node) => {
136
+ if (!node || typeof node !== 'object')
137
+ return;
138
+ const n = node;
139
+ if (n.type === 'footnoteReference' &&
140
+ n.identifier &&
141
+ !order.has(n.identifier)) {
142
+ order.set(n.identifier, order.size + 1);
143
+ }
144
+ if (n.type === 'footnoteDefinition' && n.identifier) {
145
+ defined.add(n.identifier);
146
+ }
147
+ if (Array.isArray(n.children)) {
148
+ for (const child of n.children)
149
+ walk(child);
150
+ }
151
+ };
152
+ walk(root);
153
+ for (const id of defined) {
154
+ if (!order.has(id))
155
+ order.set(id, order.size + 1);
156
+ }
157
+ return order;
158
+ }
117
159
  function MdastNodeRenderer({ node, isHeader }) {
118
160
  const state = useMdastViewerData();
119
161
  // Early return for cropped content
@@ -167,6 +209,10 @@ function MdastNodeRenderer({ node, isHeader }) {
167
209
  return _jsx(MdastMermaidRenderer, { node: node });
168
210
  case 'html':
169
211
  return _jsx(MdastHtmlRenderer, { node: node });
212
+ case 'footnoteReference':
213
+ return _jsx(MdastFootnoteReferenceRenderer, { node: node });
214
+ case 'footnoteDefinition':
215
+ return _jsx(MdastFootnoteDefinitionRenderer, { node: node });
170
216
  default:
171
217
  // Unknown node type - render children if any
172
218
  if ('children' in node && Array.isArray(node.children)) {
@@ -184,37 +230,91 @@ function MdastNodeRenderer({ node, isHeader }) {
184
230
  const ROOT_BATCH_SIZE = 30;
185
231
  /** Number of batches to render on the first paint (viewport + buffer) */
186
232
  const INITIAL_BATCH_COUNT = 4;
187
- /** Number of additional batches to mount per idle frame */
188
- const BATCHES_PER_IDLE = 2;
233
+ /** Estimated batch height used to reserve space for not-yet-mounted batches
234
+ * (matches the content-visibility intrinsic-size estimate below). */
235
+ const PLACEHOLDER_HEIGHT = 600;
189
236
  const batchStyle = {
190
237
  contentVisibility: 'auto',
191
- containIntrinsicSize: 'auto 600px',
192
- };
193
- const placeholderStyle = {
194
- height: 600,
238
+ containIntrinsicSize: `auto ${PLACEHOLDER_HEIGHT}px`,
195
239
  };
196
240
  function MdastRoot({ node }) {
197
241
  const state = useMdastViewerData();
198
242
  if (!('children' in node))
199
243
  return null;
200
- const children = node.children;
201
- if (!children)
244
+ const allChildren = node.children;
245
+ if (!allChildren)
202
246
  return null;
203
- // For small documents, render directly without batching overhead
204
- if (children.length <= ROOT_BATCH_SIZE * 2) {
205
- return (_jsx(_Fragment, { children: children.map((child, i) => (_jsx(MdastNodeRenderer, { node: child }, i))) }));
247
+ // Pull footnote definitions out of the flow and collect them into a single
248
+ // "Notes" section rendered at the end (regardless of where they sit in the
249
+ // source), so they're numbered, ordered, and link back to the citation.
250
+ const children = [];
251
+ const footnoteDefs = [];
252
+ for (const child of allChildren) {
253
+ if (child.type === 'footnoteDefinition') {
254
+ footnoteDefs.push(child);
255
+ }
256
+ else {
257
+ children.push(child);
258
+ }
206
259
  }
260
+ // For small documents, render directly without batching overhead.
261
+ const body = children.length <= ROOT_BATCH_SIZE * 2 ? (_jsx(_Fragment, { children: children.map((child, i) => (_jsx(MdastNodeRenderer, { node: child }, i))) })) : (
207
262
  // For large documents, batch top-level children and apply
208
- // content-visibility: auto so the browser skips layout/paint
209
- // for off-screen sections. Batches mount progressively to
210
- // reduce initial render cost.
211
- return (_jsx(MdastRootBatched, { priorityOffset: state.priorityOffset, children: children }));
263
+ // content-visibility: auto so the browser skips layout/paint for
264
+ // off-screen sections. Batches mount progressively to reduce render cost.
265
+ _jsx(MdastRootBatched, { priorityOffset: state.priorityOffset, children: children }));
266
+ return (_jsxs(_Fragment, { children: [body, footnoteDefs.length > 0 && _jsx(MdastFootnotesSection, { defs: footnoteDefs })] }));
267
+ }
268
+ // --- Footnote renderers ---
269
+ /** Inline citation marker, e.g. text[1] — links down to its Notes entry. */
270
+ function MdastFootnoteReferenceRenderer({ node }) {
271
+ const { footnoteNumbers } = useMdastViewerData();
272
+ const id = node.identifier;
273
+ const num = footnoteNumbers.get(id) ?? '?';
274
+ return (_jsx("sup", { id: footnoteRefDomId(id), className: "mdast-footnote-ref", children: _jsx("a", { href: `#${footnoteDefDomId(id)}`, "aria-label": `Footnote ${num}`, children: num }) }));
275
+ }
276
+ /** A standalone footnote definition (rare — they're normally grouped into the
277
+ * Notes section by MdastRoot). Rendered inline for completeness. */
278
+ function MdastFootnoteDefinitionRenderer({ node }) {
279
+ return _jsx(MdastFootnoteItem, { node: node });
280
+ }
281
+ /** One entry in the Notes list: number · note body · back-link to the text. */
282
+ function MdastFootnoteItem({ node }) {
283
+ const def = node;
284
+ const id = def.identifier;
285
+ return (_jsxs("li", { id: footnoteDefDomId(id), className: "mdast-footnote-def", children: [def.children?.map((child, i) => (_jsx(MdastNodeRenderer, { node: child }, i))), _jsx("a", { href: `#${footnoteRefDomId(id)}`, className: "mdast-footnote-backref", "aria-label": "Back to text", children: ' ↩' })] }));
286
+ }
287
+ /** The "Notes" section: an ordered list of definitions sorted by citation
288
+ * order, so the `<ol>` numbering matches the inline markers. */
289
+ function MdastFootnotesSection({ defs }) {
290
+ const { footnoteNumbers } = useMdastViewerData();
291
+ const ordered = [...defs].sort((a, b) => {
292
+ const an = footnoteNumbers.get(a.identifier) ?? 0;
293
+ const bn = footnoteNumbers.get(b.identifier) ?? 0;
294
+ return an - bn;
295
+ });
296
+ return (_jsxs("section", { className: "mdast-footnotes", "aria-label": "Notes", children: [_jsx("hr", {}), _jsx("ol", { children: ordered.map((def, i) => (_jsx(MdastFootnoteItem, { node: def }, i))) })] }));
212
297
  }
213
298
  function MdastRootBatched(props) {
214
299
  const { children, priorityOffset } = props;
215
300
  const totalBatches = Math.ceil(children.length / ROOT_BATCH_SIZE);
216
- const [mountedCount, setMountedCount] = useState(() => Math.min(INITIAL_BATCH_COUNT, totalBatches));
217
- // Find which batch the priority offset falls into
301
+ // Mount a batch when it nears the viewport (monotonic — once mounted it stays).
302
+ // The previous strategy mounted batches top-down on every idle frame, which
303
+ // grows the document height UNDER the user and makes the scrollbar jump when
304
+ // you scroll toward the bottom. Proximity-mounting settles each batch's real
305
+ // height ~1 viewport ahead of the scroll, so the bar stays stable.
306
+ const [mounted, setMounted] = useState(() => {
307
+ const init = new Set();
308
+ for (let i = 0; i < Math.min(INITIAL_BATCH_COUNT, totalBatches); i++) {
309
+ init.add(i);
310
+ }
311
+ return init;
312
+ });
313
+ const slotRefs = useRef([]);
314
+ // Real measured heights, reused as placeholder reservations so an unmounted
315
+ // batch never mis-estimates its height once it has been seen.
316
+ const heights = useRef([]);
317
+ // Find which batch the priority offset falls into (deep-link / search target).
218
318
  const priorityBatchIndex = useMemo(() => {
219
319
  if (!isDefined(priorityOffset))
220
320
  return -1;
@@ -229,39 +329,61 @@ function MdastRootBatched(props) {
229
329
  }
230
330
  return -1;
231
331
  }, [priorityOffset, totalBatches, children]);
232
- // Progressively mount more batches during idle time
233
332
  useEffect(() => {
234
- if (mountedCount >= totalBatches)
235
- return;
236
- let rafId;
237
- const mountMore = () => {
238
- setMountedCount((prev) => {
239
- const next = Math.min(prev + BATCHES_PER_IDLE, totalBatches);
240
- if (next < totalBatches) {
241
- rafId = requestAnimationFrame(mountMore);
242
- }
243
- return next;
333
+ // Without IntersectionObserver (e.g. SSR/jsdom), fall back to mounting all.
334
+ if (typeof IntersectionObserver === 'undefined') {
335
+ setMounted(() => {
336
+ const all = new Set();
337
+ for (let i = 0; i < totalBatches; i++)
338
+ all.add(i);
339
+ return all;
244
340
  });
245
- };
246
- rafId = requestAnimationFrame(mountMore);
341
+ return undefined;
342
+ }
343
+ const io = new IntersectionObserver((entries) => {
344
+ let added = false;
345
+ const next = new Set();
346
+ for (const entry of entries) {
347
+ if (!entry.isIntersecting)
348
+ continue;
349
+ const idx = Number(entry.target.dataset.batch);
350
+ if (!Number.isNaN(idx)) {
351
+ next.add(idx);
352
+ added = true;
353
+ }
354
+ }
355
+ if (added)
356
+ setMounted((prev) => new Set([...prev, ...next]));
357
+ },
358
+ // Mount ~one viewport ahead so heights settle off-screen.
359
+ { rootMargin: '1200px 0px' });
360
+ for (const el of slotRefs.current)
361
+ if (el)
362
+ io.observe(el);
247
363
  return () => {
248
- cancelAnimationFrame(rafId);
364
+ io.disconnect();
249
365
  };
250
366
  }, [totalBatches]);
367
+ // Remember each mounted batch's real height for stable placeholder sizing.
368
+ useEffect(() => {
369
+ for (let i = 0; i < slotRefs.current.length; i++) {
370
+ const el = slotRefs.current[i];
371
+ if (el && el.childElementCount > 0)
372
+ heights.current[i] = el.offsetHeight;
373
+ }
374
+ });
251
375
  const batches = [];
252
376
  for (let i = 0; i < totalBatches; i++) {
253
377
  const start = i * ROOT_BATCH_SIZE;
254
378
  const end = Math.min(start + ROOT_BATCH_SIZE, children.length);
255
- // Mount if within the progressive count or is the priority batch (± 1 neighbor)
256
379
  const isPriority = priorityBatchIndex >= 0 &&
257
380
  i >= priorityBatchIndex - 1 &&
258
381
  i <= priorityBatchIndex + 1;
259
- if (i < mountedCount || isPriority) {
260
- batches.push(_jsx("div", { style: batchStyle, children: children.slice(start, end).map((child, j) => (_jsx(MdastNodeRenderer, { node: child }, start + j))) }, start));
261
- }
262
- else {
263
- batches.push(_jsx("div", { style: placeholderStyle }, start));
264
- }
382
+ const show = mounted.has(i) || isPriority;
383
+ batches.push(_jsx("div", { "data-batch": i, ref: (el) => {
384
+ slotRefs.current[i] = el;
385
+ }, style: show ? batchStyle : { height: heights.current[i] ?? PLACEHOLDER_HEIGHT }, children: show &&
386
+ children.slice(start, end).map((child, j) => (_jsx(MdastNodeRenderer, { node: child }, start + j))) }, i));
265
387
  }
266
388
  return _jsx(_Fragment, { children: batches });
267
389
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MdastViewer.js","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MdastViewer.js","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"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.724",
3
+ "version": "0.1.726",
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.724";
2
+ export const CLI_VERSION = "0.1.726";
@@ -130,6 +130,13 @@ export interface CreateSocketOptions<R extends AppRegistryBase> {
130
130
  buildId?: string;
131
131
  /** Starting focus state for hosts without `document` (e.g. Electron main). Defaults to true. */
132
132
  initialFocus?: boolean;
133
+ /** Keep the socket CONNECTED + pinging even while unfocused/blurred. The default
134
+ * (false) disconnects on blur to save battery — correct for mobile, which the OS
135
+ * suspends when backgrounded. But a persistent host that keeps RUNNING while
136
+ * unfocused (the desktop browser, a server-side client) must stay connected, or it
137
+ * silently goes offline and misses every live trackDocs push until refocused. Such
138
+ * hosts set this true so blur no longer stops the keep-alive or idle-disconnects. */
139
+ keepConnectedWhenUnfocused?: boolean;
133
140
  /** Called for any message type not handled by the framework. */
134
141
  onCustomMessage?: (msg: {
135
142
  type: string;
@@ -173,6 +180,10 @@ export function createSocket<R extends AppRegistryBase>(
173
180
  let pendingReconnect = false;
174
181
  let wasIdleDisconnect = false;
175
182
  let isWindowFocused = opts.initialFocus ?? true;
183
+ // Persistent hosts (desktop browser) stay connected + pinging while unfocused so
184
+ // they never silently go offline and miss live trackDocs pushes (mobile keeps the
185
+ // default battery-saving blur-disconnect, since the OS suspends it when backgrounded).
186
+ const keepUnfocused = opts.keepConnectedWhenUnfocused ?? false;
176
187
  let pingInterval: ReturnType<typeof setInterval> | null = null;
177
188
  let state: ConnectionState = 'connecting';
178
189
 
@@ -318,9 +329,9 @@ export function createSocket<R extends AppRegistryBase>(
318
329
 
319
330
  function startPing() {
320
331
  stopPing();
321
- if (!isWindowFocused) return;
332
+ if (!isWindowFocused && !keepUnfocused) return;
322
333
  pingInterval = setInterval(() => {
323
- if (isConnected && isWindowFocused) socketEmit('ping', {});
334
+ if (isConnected && (isWindowFocused || keepUnfocused)) socketEmit('ping', {});
324
335
  }, pingIntervalMs);
325
336
  }
326
337
 
@@ -524,6 +535,9 @@ export function createSocket<R extends AppRegistryBase>(
524
535
  startPing();
525
536
  }
526
537
  } else {
538
+ // Persistent host: ignore blur for connection management — keep pinging + stay
539
+ // connected so live pushes never stop (the ping interval already keys on keepUnfocused).
540
+ if (keepUnfocused) return;
527
541
  stopPing();
528
542
  wasIdleDisconnect = true;
529
543
  }
@@ -593,12 +607,14 @@ export function createSocket<R extends AppRegistryBase>(
593
607
  isConnected = false;
594
608
  stopPing();
595
609
 
596
- if (!isWindowFocused) {
610
+ if (!isWindowFocused && !keepUnfocused) {
597
611
  wasIdleDisconnect = true;
598
612
  setState('idle-disconnected');
599
613
  requeueOrRejectPending(true);
600
614
  return;
601
615
  }
616
+ // keepUnfocused hosts fall through to the normal reconnect path below even while
617
+ // unfocused, so a dropped connection self-heals (and re-snapshots) immediately.
602
618
 
603
619
  setState('reconnecting', { attempt: reconnectAttempts + 1 });
604
620
  requeueOrRejectPending(false);
@@ -29,6 +29,8 @@ import {
29
29
  } from '../shared/MdastParser.js';
30
30
  import {
31
31
  MdastCode,
32
+ MdastFootnoteDefinition,
33
+ MdastFootnoteReference,
32
34
  MdastHeading,
33
35
  MdastHtml,
34
36
  MdastImage,
@@ -58,6 +60,8 @@ interface MdastViewerContextData {
58
60
  isDark: boolean;
59
61
  onCheckboxToggle?: (position: { line: number; column: number }) => void;
60
62
  priorityOffset?: number;
63
+ /** GFM footnote identifier -> display number (1-based, by first reference). */
64
+ footnoteNumbers: Map<string, number>;
61
65
  }
62
66
 
63
67
  // --- Context ---
@@ -68,6 +72,7 @@ const MdastViewerContext = createContext<MdastViewerContextData>({
68
72
  scrollToView: false,
69
73
  isDark: false,
70
74
  onCheckboxToggle: undefined,
75
+ footnoteNumbers: new Map(),
71
76
  });
72
77
 
73
78
  function useMdastViewerData() {
@@ -170,6 +175,10 @@ export function MdastViewer(props: MdastViewerProps) {
170
175
 
171
176
  const themeClass = props.isDark ? 'prosemirror-dark' : 'prosemirror-light';
172
177
 
178
+ // Number footnotes by first-reference order so refs and the Notes list agree
179
+ // (the def list order in the source can differ from citation order).
180
+ const footnoteNumbers = useMemo(() => collectFootnoteOrder(ast), [ast]);
181
+
173
182
  return (
174
183
  <MdastViewerContext.Provider
175
184
  value={{
@@ -181,6 +190,7 @@ export function MdastViewer(props: MdastViewerProps) {
181
190
  isDark: props.isDark ?? false,
182
191
  onCheckboxToggle: props.onCheckboxToggle,
183
192
  priorityOffset: props.priorityOffset,
193
+ footnoteNumbers,
184
194
  }}
185
195
  >
186
196
  <div
@@ -207,6 +217,51 @@ interface NodeRendererProps {
207
217
  isHeader?: boolean;
208
218
  }
209
219
 
220
+ // --- Footnotes ---
221
+
222
+ /** Stable DOM ids for footnote ref <-> definition cross-linking. */
223
+ const footnoteDefDomId = (id: string): string => `mdast-fn-${id}`;
224
+ const footnoteRefDomId = (id: string): string => `mdast-fnref-${id}`;
225
+
226
+ /**
227
+ * Number footnotes by FIRST-REFERENCE order (the order they're cited in the
228
+ * body), so the inline marker and the Notes list agree even when the source
229
+ * lists the definitions in a different order. Notes that are defined but never
230
+ * referenced are appended after, so each one still gets a number.
231
+ */
232
+ function collectFootnoteOrder(
233
+ root: MdastNodeWithTextIndex,
234
+ ): Map<string, number> {
235
+ const order = new Map<string, number>();
236
+ const defined = new Set<string>();
237
+ const walk = (node: unknown): void => {
238
+ if (!node || typeof node !== 'object') return;
239
+ const n = node as {
240
+ type?: string;
241
+ identifier?: string;
242
+ children?: unknown[];
243
+ };
244
+ if (
245
+ n.type === 'footnoteReference' &&
246
+ n.identifier &&
247
+ !order.has(n.identifier)
248
+ ) {
249
+ order.set(n.identifier, order.size + 1);
250
+ }
251
+ if (n.type === 'footnoteDefinition' && n.identifier) {
252
+ defined.add(n.identifier);
253
+ }
254
+ if (Array.isArray(n.children)) {
255
+ for (const child of n.children) walk(child);
256
+ }
257
+ };
258
+ walk(root);
259
+ for (const id of defined) {
260
+ if (!order.has(id)) order.set(id, order.size + 1);
261
+ }
262
+ return order;
263
+ }
264
+
210
265
  function MdastNodeRenderer({ node, isHeader }: NodeRendererProps): ReactNode {
211
266
  const state = useMdastViewerData();
212
267
 
@@ -264,6 +319,10 @@ function MdastNodeRenderer({ node, isHeader }: NodeRendererProps): ReactNode {
264
319
  return <MdastMermaidRenderer node={node} />;
265
320
  case 'html':
266
321
  return <MdastHtmlRenderer node={node} />;
322
+ case 'footnoteReference':
323
+ return <MdastFootnoteReferenceRenderer node={node} />;
324
+ case 'footnoteDefinition':
325
+ return <MdastFootnoteDefinitionRenderer node={node} />;
267
326
  default:
268
327
  // Unknown node type - render children if any
269
328
  if ('children' in node && Array.isArray(node.children)) {
@@ -291,43 +350,119 @@ const ROOT_BATCH_SIZE = 30;
291
350
  /** Number of batches to render on the first paint (viewport + buffer) */
292
351
  const INITIAL_BATCH_COUNT = 4;
293
352
 
294
- /** Number of additional batches to mount per idle frame */
295
- const BATCHES_PER_IDLE = 2;
353
+ /** Estimated batch height used to reserve space for not-yet-mounted batches
354
+ * (matches the content-visibility intrinsic-size estimate below). */
355
+ const PLACEHOLDER_HEIGHT = 600;
296
356
 
297
357
  const batchStyle: CSSProperties = {
298
358
  contentVisibility: 'auto',
299
- containIntrinsicSize: 'auto 600px',
300
- };
301
-
302
- const placeholderStyle: CSSProperties = {
303
- height: 600,
359
+ containIntrinsicSize: `auto ${PLACEHOLDER_HEIGHT}px`,
304
360
  };
305
361
 
306
362
  function MdastRoot({ node }: NodeRendererProps) {
307
363
  const state = useMdastViewerData();
308
364
  if (!('children' in node)) return null;
309
- const children = node.children;
310
- if (!children) return null;
365
+ const allChildren = node.children;
366
+ if (!allChildren) return null;
367
+
368
+ // Pull footnote definitions out of the flow and collect them into a single
369
+ // "Notes" section rendered at the end (regardless of where they sit in the
370
+ // source), so they're numbered, ordered, and link back to the citation.
371
+ const children: MdastNodeWithTextIndex[] = [];
372
+ const footnoteDefs: MdastNodeWithTextIndex[] = [];
373
+ for (const child of allChildren) {
374
+ if ((child as { type?: string }).type === 'footnoteDefinition') {
375
+ footnoteDefs.push(child as MdastNodeWithTextIndex);
376
+ } else {
377
+ children.push(child as MdastNodeWithTextIndex);
378
+ }
379
+ }
311
380
 
312
- // For small documents, render directly without batching overhead
313
- if (children.length <= ROOT_BATCH_SIZE * 2) {
314
- return (
381
+ // For small documents, render directly without batching overhead.
382
+ const body =
383
+ children.length <= ROOT_BATCH_SIZE * 2 ? (
315
384
  <>
316
385
  {children.map((child, i) => (
317
- <MdastNodeRenderer key={i} node={child as MdastNodeWithTextIndex} />
386
+ <MdastNodeRenderer key={i} node={child} />
318
387
  ))}
319
388
  </>
389
+ ) : (
390
+ // For large documents, batch top-level children and apply
391
+ // content-visibility: auto so the browser skips layout/paint for
392
+ // off-screen sections. Batches mount progressively to reduce render cost.
393
+ <MdastRootBatched priorityOffset={state.priorityOffset}>
394
+ {children}
395
+ </MdastRootBatched>
320
396
  );
321
- }
322
397
 
323
- // For large documents, batch top-level children and apply
324
- // content-visibility: auto so the browser skips layout/paint
325
- // for off-screen sections. Batches mount progressively to
326
- // reduce initial render cost.
327
398
  return (
328
- <MdastRootBatched priorityOffset={state.priorityOffset}>
329
- {children}
330
- </MdastRootBatched>
399
+ <>
400
+ {body}
401
+ {footnoteDefs.length > 0 && <MdastFootnotesSection defs={footnoteDefs} />}
402
+ </>
403
+ );
404
+ }
405
+
406
+ // --- Footnote renderers ---
407
+
408
+ /** Inline citation marker, e.g. text[1] — links down to its Notes entry. */
409
+ function MdastFootnoteReferenceRenderer({ node }: NodeRendererProps) {
410
+ const { footnoteNumbers } = useMdastViewerData();
411
+ const id = (node as MdastFootnoteReference).identifier;
412
+ const num = footnoteNumbers.get(id) ?? '?';
413
+ return (
414
+ <sup id={footnoteRefDomId(id)} className="mdast-footnote-ref">
415
+ <a href={`#${footnoteDefDomId(id)}`} aria-label={`Footnote ${num}`}>
416
+ {num}
417
+ </a>
418
+ </sup>
419
+ );
420
+ }
421
+
422
+ /** A standalone footnote definition (rare — they're normally grouped into the
423
+ * Notes section by MdastRoot). Rendered inline for completeness. */
424
+ function MdastFootnoteDefinitionRenderer({ node }: NodeRendererProps) {
425
+ return <MdastFootnoteItem node={node} />;
426
+ }
427
+
428
+ /** One entry in the Notes list: number · note body · back-link to the text. */
429
+ function MdastFootnoteItem({ node }: NodeRendererProps) {
430
+ const def = node as MdastNodeWithTextIndex<MdastFootnoteDefinition>;
431
+ const id = def.identifier;
432
+ return (
433
+ <li id={footnoteDefDomId(id)} className="mdast-footnote-def">
434
+ {def.children?.map((child, i) => (
435
+ <MdastNodeRenderer key={i} node={child as MdastNodeWithTextIndex} />
436
+ ))}
437
+ <a
438
+ href={`#${footnoteRefDomId(id)}`}
439
+ className="mdast-footnote-backref"
440
+ aria-label="Back to text"
441
+ >
442
+ {' ↩'}
443
+ </a>
444
+ </li>
445
+ );
446
+ }
447
+
448
+ /** The "Notes" section: an ordered list of definitions sorted by citation
449
+ * order, so the `<ol>` numbering matches the inline markers. */
450
+ function MdastFootnotesSection({ defs }: { defs: MdastNodeWithTextIndex[] }) {
451
+ const { footnoteNumbers } = useMdastViewerData();
452
+ const ordered = [...defs].sort((a, b) => {
453
+ const an = footnoteNumbers.get((a as MdastFootnoteDefinition).identifier) ?? 0;
454
+ const bn = footnoteNumbers.get((b as MdastFootnoteDefinition).identifier) ?? 0;
455
+ return an - bn;
456
+ });
457
+ return (
458
+ <section className="mdast-footnotes" aria-label="Notes">
459
+ <hr />
460
+ <ol>
461
+ {ordered.map((def, i) => (
462
+ <MdastFootnoteItem key={i} node={def} />
463
+ ))}
464
+ </ol>
465
+ </section>
331
466
  );
332
467
  }
333
468
 
@@ -337,11 +472,25 @@ function MdastRootBatched(props: {
337
472
  }) {
338
473
  const { children, priorityOffset } = props;
339
474
  const totalBatches = Math.ceil(children.length / ROOT_BATCH_SIZE);
340
- const [mountedCount, setMountedCount] = useState(() =>
341
- Math.min(INITIAL_BATCH_COUNT, totalBatches),
342
- );
343
475
 
344
- // Find which batch the priority offset falls into
476
+ // Mount a batch when it nears the viewport (monotonic once mounted it stays).
477
+ // The previous strategy mounted batches top-down on every idle frame, which
478
+ // grows the document height UNDER the user and makes the scrollbar jump when
479
+ // you scroll toward the bottom. Proximity-mounting settles each batch's real
480
+ // height ~1 viewport ahead of the scroll, so the bar stays stable.
481
+ const [mounted, setMounted] = useState<Set<number>>(() => {
482
+ const init = new Set<number>();
483
+ for (let i = 0; i < Math.min(INITIAL_BATCH_COUNT, totalBatches); i++) {
484
+ init.add(i);
485
+ }
486
+ return init;
487
+ });
488
+ const slotRefs = useRef<(HTMLDivElement | null)[]>([]);
489
+ // Real measured heights, reused as placeholder reservations so an unmounted
490
+ // batch never mis-estimates its height once it has been seen.
491
+ const heights = useRef<number[]>([]);
492
+
493
+ // Find which batch the priority offset falls into (deep-link / search target).
345
494
  const priorityBatchIndex = useMemo(() => {
346
495
  if (!isDefined(priorityOffset)) return -1;
347
496
  for (let i = 0; i < totalBatches; i++) {
@@ -356,47 +505,73 @@ function MdastRootBatched(props: {
356
505
  return -1;
357
506
  }, [priorityOffset, totalBatches, children]);
358
507
 
359
- // Progressively mount more batches during idle time
360
508
  useEffect(() => {
361
- if (mountedCount >= totalBatches) return;
362
-
363
- let rafId: number;
364
- const mountMore = () => {
365
- setMountedCount((prev) => {
366
- const next = Math.min(prev + BATCHES_PER_IDLE, totalBatches);
367
- if (next < totalBatches) {
368
- rafId = requestAnimationFrame(mountMore);
369
- }
370
- return next;
509
+ // Without IntersectionObserver (e.g. SSR/jsdom), fall back to mounting all.
510
+ if (typeof IntersectionObserver === 'undefined') {
511
+ setMounted(() => {
512
+ const all = new Set<number>();
513
+ for (let i = 0; i < totalBatches; i++) all.add(i);
514
+ return all;
371
515
  });
372
- };
373
- rafId = requestAnimationFrame(mountMore);
374
-
516
+ return undefined;
517
+ }
518
+ const io = new IntersectionObserver(
519
+ (entries) => {
520
+ let added = false;
521
+ const next = new Set<number>();
522
+ for (const entry of entries) {
523
+ if (!entry.isIntersecting) continue;
524
+ const idx = Number((entry.target as HTMLElement).dataset.batch);
525
+ if (!Number.isNaN(idx)) {
526
+ next.add(idx);
527
+ added = true;
528
+ }
529
+ }
530
+ if (added) setMounted((prev) => new Set([...prev, ...next]));
531
+ },
532
+ // Mount ~one viewport ahead so heights settle off-screen.
533
+ { rootMargin: '1200px 0px' },
534
+ );
535
+ for (const el of slotRefs.current) if (el) io.observe(el);
375
536
  return () => {
376
- cancelAnimationFrame(rafId);
537
+ io.disconnect();
377
538
  };
378
539
  }, [totalBatches]);
379
540
 
541
+ // Remember each mounted batch's real height for stable placeholder sizing.
542
+ useEffect(() => {
543
+ for (let i = 0; i < slotRefs.current.length; i++) {
544
+ const el = slotRefs.current[i];
545
+ if (el && el.childElementCount > 0) heights.current[i] = el.offsetHeight;
546
+ }
547
+ });
548
+
380
549
  const batches: ReactNode[] = [];
381
550
  for (let i = 0; i < totalBatches; i++) {
382
551
  const start = i * ROOT_BATCH_SIZE;
383
552
  const end = Math.min(start + ROOT_BATCH_SIZE, children.length);
384
- // Mount if within the progressive count or is the priority batch (± 1 neighbor)
385
553
  const isPriority =
386
554
  priorityBatchIndex >= 0 &&
387
555
  i >= priorityBatchIndex - 1 &&
388
556
  i <= priorityBatchIndex + 1;
389
- if (i < mountedCount || isPriority) {
390
- batches.push(
391
- <div key={start} style={batchStyle}>
392
- {children.slice(start, end).map((child, j) => (
557
+ const show = mounted.has(i) || isPriority;
558
+ batches.push(
559
+ <div
560
+ key={i}
561
+ data-batch={i}
562
+ ref={(el) => {
563
+ slotRefs.current[i] = el;
564
+ }}
565
+ style={
566
+ show ? batchStyle : { height: heights.current[i] ?? PLACEHOLDER_HEIGHT }
567
+ }
568
+ >
569
+ {show &&
570
+ children.slice(start, end).map((child, j) => (
393
571
  <MdastNodeRenderer key={start + j} node={child} />
394
572
  ))}
395
- </div>,
396
- );
397
- } else {
398
- batches.push(<div key={start} style={placeholderStyle} />);
399
- }
573
+ </div>,
574
+ );
400
575
  }
401
576
  return <>{batches}</>;
402
577
  }