@meshconnect/uwc-core 1.2.3-snapshot.dcfdbbf → 1.3.0

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.
Files changed (54) hide show
  1. package/dist/events.d.ts +40 -5
  2. package/dist/events.d.ts.map +1 -1
  3. package/dist/events.js +4 -0
  4. package/dist/events.js.map +1 -1
  5. package/dist/observability/focus-tracker.d.ts +30 -11
  6. package/dist/observability/focus-tracker.d.ts.map +1 -1
  7. package/dist/observability/focus-tracker.js +54 -18
  8. package/dist/observability/focus-tracker.js.map +1 -1
  9. package/dist/observability/instrument-handoff.d.ts.map +1 -1
  10. package/dist/observability/instrument-handoff.js +25 -6
  11. package/dist/observability/instrument-handoff.js.map +1 -1
  12. package/dist/observability/lifecycle-bridge.d.ts +13 -31
  13. package/dist/observability/lifecycle-bridge.d.ts.map +1 -1
  14. package/dist/observability/lifecycle-bridge.js +92 -167
  15. package/dist/observability/lifecycle-bridge.js.map +1 -1
  16. package/dist/observability/relay-drop-tracker.d.ts +37 -0
  17. package/dist/observability/relay-drop-tracker.d.ts.map +1 -0
  18. package/dist/observability/relay-drop-tracker.js +30 -0
  19. package/dist/observability/relay-drop-tracker.js.map +1 -0
  20. package/dist/observability/telemetry.d.ts +8 -0
  21. package/dist/observability/telemetry.d.ts.map +1 -1
  22. package/dist/observability/telemetry.js +32 -5
  23. package/dist/observability/telemetry.js.map +1 -1
  24. package/dist/services/connection-service.d.ts +0 -43
  25. package/dist/services/connection-service.d.ts.map +1 -1
  26. package/dist/services/connection-service.js +9 -163
  27. package/dist/services/connection-service.js.map +1 -1
  28. package/dist/services/network-switch-service.d.ts.map +1 -1
  29. package/dist/services/network-switch-service.js +1 -4
  30. package/dist/services/network-switch-service.js.map +1 -1
  31. package/dist/universal-wallet-connector.d.ts.map +1 -1
  32. package/dist/universal-wallet-connector.js +18 -11
  33. package/dist/universal-wallet-connector.js.map +1 -1
  34. package/dist/version.d.ts +1 -1
  35. package/dist/version.js +1 -1
  36. package/package.json +5 -5
  37. package/src/events.ts +50 -6
  38. package/src/observability/focus-tracker.test.ts +95 -8
  39. package/src/observability/focus-tracker.ts +72 -22
  40. package/src/observability/instrument-handoff.test.ts +62 -0
  41. package/src/observability/instrument-handoff.ts +37 -6
  42. package/src/observability/lifecycle-bridge.test.ts +0 -197
  43. package/src/observability/lifecycle-bridge.ts +99 -211
  44. package/src/observability/relay-drop-tracker.test.ts +84 -0
  45. package/src/observability/relay-drop-tracker.ts +53 -0
  46. package/src/observability/telemetry.test.ts +18 -0
  47. package/src/observability/telemetry.ts +41 -6
  48. package/src/services/connection-service.test.ts +0 -272
  49. package/src/services/connection-service.ts +10 -190
  50. package/src/services/network-switch-service.test.ts +0 -33
  51. package/src/services/network-switch-service.ts +1 -4
  52. package/src/universal-wallet-connector.observability.test.ts +54 -8
  53. package/src/universal-wallet-connector.ts +22 -12
  54. package/src/version.ts +1 -1
package/dist/events.d.ts CHANGED
@@ -65,6 +65,23 @@ export interface UWCEventMap {
65
65
  relayError: {
66
66
  error: WalletError;
67
67
  };
68
+ /**
69
+ * The WalletConnect relay transport socket dropped (relayer `disconnect`) — e.g.
70
+ * iOS suspending the WebView during a wallet deep-link silently kills the socket.
71
+ * Distinct from `relayError` (an abnormal close that surfaced an ERROR): this is
72
+ * the lifecycle FACT of the socket going down. Emitted once per outage (WC core
73
+ * re-emits `disconnect` on each failed reconnect); pair with `relayReconnected`
74
+ * to measure the dead window that leaves an in-flight sign/connect response
75
+ * undelivered (CARE-263). The relayer passes no payload, so this carries no
76
+ * reason. Telemetry-only.
77
+ */
78
+ relayDisconnected: void;
79
+ /**
80
+ * The WalletConnect relay transport reconnected after a `relayDisconnected`.
81
+ * The elapsed time since the paired disconnect is the socket's dead window.
82
+ * Telemetry-only.
83
+ */
84
+ relayReconnected: void;
68
85
  /**
69
86
  * `SignClient.init` (WalletConnect) rejected — the client could not be created, so
70
87
  * no connect could proceed. Rejects on a storage (IndexedDB) or crypto init failure,
@@ -106,13 +123,9 @@ export interface UWCEventMap {
106
123
  isLoading: boolean;
107
124
  isWaitingForUserApproval: boolean;
108
125
  };
109
- /** Network switch succeeded. `address` is the new address the switch
110
- * resolved to (present whenever the connector returned one) — used by
111
- * the lifecycle bridge to suppress the wallet's own echo of this same
112
- * change (see attachLifecycle's echo-suppression window). */
126
+ /** Network switch succeeded. */
113
127
  networkSwitched: {
114
128
  network: Network;
115
- address?: string;
116
129
  };
117
130
  /** Wallet capabilities were refreshed. */
118
131
  capabilitiesUpdated: {
@@ -190,6 +203,11 @@ export interface UWCEventMap {
190
203
  timeoutMs?: number | undefined;
191
204
  /** switchNetwork only: target chain already the active one (no-op switch). */
192
205
  targetAlreadyActive?: boolean | undefined;
206
+ /** Backgrounding during this handoff: cumulative hidden time (ms) + transition count. */
207
+ backgroundedMs?: number | undefined;
208
+ backgroundCount?: number | undefined;
209
+ /** WalletConnect only: relay-socket drops seen while this handoff was pending. */
210
+ relayDropCount?: number | undefined;
193
211
  };
194
212
  /** The user explicitly rejected (4001 / WalletError.type === 'rejected'). Closes a handoff. */
195
213
  walletRejected: {
@@ -207,6 +225,11 @@ export interface UWCEventMap {
207
225
  errorCode?: string | undefined;
208
226
  failureKind?: FailureKind | undefined;
209
227
  source?: ErrorSource | undefined;
228
+ /** Backgrounding during this handoff: cumulative hidden time (ms) + transition count. */
229
+ backgroundedMs?: number | undefined;
230
+ backgroundCount?: number | undefined;
231
+ /** WalletConnect only: relay-socket drops seen while this handoff was pending. */
232
+ relayDropCount?: number | undefined;
210
233
  };
211
234
  /** The op failed for any non-rejection reason. Closes a handoff. */
212
235
  walletFailed: {
@@ -225,6 +248,11 @@ export interface UWCEventMap {
225
248
  errorCode?: string | undefined;
226
249
  failureKind?: FailureKind | undefined;
227
250
  source?: ErrorSource | undefined;
251
+ /** Backgrounding during this handoff: cumulative hidden time (ms) + transition count. */
252
+ backgroundedMs?: number | undefined;
253
+ backgroundCount?: number | undefined;
254
+ /** WalletConnect only: relay-socket drops seen while this handoff was pending. */
255
+ relayDropCount?: number | undefined;
228
256
  };
229
257
  /**
230
258
  * Side marker: the deadline passed with the op still pending. OBSERVATIONAL —
@@ -244,6 +272,11 @@ export interface UWCEventMap {
244
272
  timeoutMs: number;
245
273
  /** switchNetwork only: target chain already the active one (no-op switch). */
246
274
  targetAlreadyActive?: boolean | undefined;
275
+ /** Backgrounding so far (marker fires mid-flight): hidden time (ms) + transition count. */
276
+ backgroundedMs?: number | undefined;
277
+ backgroundCount?: number | undefined;
278
+ /** WalletConnect only: relay-socket drops seen so far while this handoff was pending. */
279
+ relayDropCount?: number | undefined;
247
280
  };
248
281
  /** The wallet's active account/list changed. Signals THAT it changed, not which. */
249
282
  walletAccountChanged: {
@@ -305,6 +338,8 @@ export interface UWCEventMap {
305
338
  pageVisibleDuringHandoff: {
306
339
  handoffId: string;
307
340
  platform: Platform;
341
+ /** Duration the page was hidden for THIS hide→show segment (ms). */
342
+ hiddenMs?: number | undefined;
308
343
  };
309
344
  /**
310
345
  * Back-compat catch-all. Fires after every other event above.
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/events.js CHANGED
@@ -30,6 +30,8 @@ export const TELEMETRY_ONLY_EVENTS = new Set([
30
30
  'walletDiscoveryFailed',
31
31
  'bridgeError',
32
32
  'relayError',
33
+ 'relayDisconnected',
34
+ 'relayReconnected',
33
35
  'walletConnectInitError',
34
36
  'walletAccountChanged',
35
37
  'walletChainChanged',
@@ -51,6 +53,8 @@ const EVENT_NAME_FLAGS = {
51
53
  walletDiscoveryFailed: true,
52
54
  bridgeError: true,
53
55
  relayError: true,
56
+ relayDisconnected: true,
57
+ relayReconnected: true,
54
58
  walletConnectInitError: true,
55
59
  connecting: true,
56
60
  connected: true,
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,YAAY;IACZ,eAAe;IACf,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,uBAAuB;IACvB,uBAAuB;IACvB,YAAY;CACJ,CAAA;AA8SV;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA8B,IAAI,GAAG,CAAC;IACtE,KAAK;IACL,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,uBAAuB;IACvB,aAAa;IACb,YAAY;IACZ,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;CAC3B,CAAC,CAAA;AAOF;;;;;GAKG;AACH,MAAM,gBAAgB,GAA+B;IACnD,KAAK,EAAE,IAAI;IACX,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI;IAC3B,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,IAAI;IACT,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,6BAA6B,EAAE,IAAI;IACnC,uBAAuB,EAAE,IAAI;IAC7B,wBAAwB,EAAE,IAAI;IAC9B,MAAM,EAAE,IAAI;CACb,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAmB,CAAA"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,YAAY;IACZ,eAAe;IACf,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,uBAAuB;IACvB,uBAAuB;IACvB,YAAY;CACJ,CAAA;AAsVV;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA8B,IAAI,GAAG,CAAC;IACtE,KAAK;IACL,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,uBAAuB;IACvB,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;IAClB,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;CAC3B,CAAC,CAAA;AAOF;;;;;GAKG;AACH,MAAM,gBAAgB,GAA+B;IACnD,KAAK,EAAE,IAAI;IACX,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,IAAI;IAC3B,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,sBAAsB,EAAE,IAAI;IAC5B,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,IAAI;IACT,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,6BAA6B,EAAE,IAAI;IACnC,uBAAuB,EAAE,IAAI;IAC7B,wBAAwB,EAAE,IAAI;IAC9B,MAAM,EAAE,IAAI;CACb,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAmB,CAAA"}
@@ -22,21 +22,40 @@ export interface FocusWindowLike {
22
22
  addEventListener(type: string, listener: () => void): void;
23
23
  removeEventListener(type: string, listener: () => void): void;
24
24
  }
25
+ /** Handle returned by `trackFocusDuringHandoff`. */
26
+ export interface FocusHandoffTracker {
27
+ /** Remove the visibility listeners. Always call on settle (no-op if none attached). */
28
+ stop: () => void;
29
+ /**
30
+ * Backgrounding summary at call time: how many times the page was hidden and the
31
+ * cumulative hidden duration (ms) during the handoff — including an in-progress
32
+ * hidden segment if the handoff settles while still backgrounded.
33
+ */
34
+ summary: () => {
35
+ backgroundCount: number;
36
+ backgroundedMs: number;
37
+ };
38
+ }
25
39
  /**
26
40
  * While a wallet handoff is pending, emit a FACT on every tab-visibility
27
41
  * transition — `pageHiddenDuringHandoff` when the page is backgrounded (the user
28
- * likely left for the wallet app), `pageVisibleDuringHandoff` when it returns
29
- * (including a bfcache `pageshow`, which iOS uses when coming back from a wallet).
42
+ * likely left for the wallet app), `pageVisibleDuringHandoff` (with the segment's
43
+ * `hiddenMs`) when it returns (including a bfcache `pageshow`, which iOS uses when
44
+ * coming back from a wallet).
30
45
  *
31
- * This is the raw signal behind "did the user actually app-switch to the wallet?"
32
- * for deep-link flows — it does NOT interpret abandonment. The listeners are
33
- * scoped to the single handoff: attach right after `awaitingWallet`, and the
34
- * returned teardown (called the instant the op settles) removes them, so the
35
- * page's visibility is only observed during the blind window. SSR-safe (no-op
36
- * when there is neither `document` nor `window`).
46
+ * This is the raw signal behind "did the user actually app-switch to the wallet,
47
+ * and for how long?" for deep-link flows — it does NOT interpret abandonment. The
48
+ * listeners are scoped to the single handoff: attach right after `awaitingWallet`,
49
+ * and `stop()` (called the instant the op settles) removes them, so the page's
50
+ * visibility is only observed during the blind window. SSR-safe (no-op when there
51
+ * is neither `document` nor `window`). `summary()` lets the handoff stamp the
52
+ * cumulative backgrounding onto its terminal.
37
53
  *
38
- * @returns a teardown that removes the listeners. Always call it (even when
39
- * nothing was attached it's a no-op then) to keep the call site symmetric.
54
+ * One non-transition case: if the tracker attaches while the page is ALREADY
55
+ * hidden (handoff initiated from a backgrounded tab), it emits an initial
56
+ * synthetic `pageHiddenDuringHandoff` at attach time so the eventual return pairs
57
+ * 1:1 and the hidden segment is counted. So `pageHiddenDuringHandoff` is "every
58
+ * transition into hidden, plus an already-hidden start", not strictly transitions.
40
59
  */
41
- export declare function trackFocusDuringHandoff(eventManager: EventManager, handoffId: string, platform: Platform, doc?: FocusDocumentLike | undefined, win?: FocusWindowLike | undefined): () => void;
60
+ export declare function trackFocusDuringHandoff(eventManager: EventManager, handoffId: string, platform: Platform, doc?: FocusDocumentLike | undefined, win?: FocusWindowLike | undefined, now?: () => number): FocusHandoffTracker;
42
61
  //# sourceMappingURL=focus-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../src/observability/focus-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAC9D;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,GAAG,GAAE,iBAAiB,GAAG,SAA6B,EACtD,GAAG,GAAE,eAAe,GAAG,SAA2B,GACjD,MAAM,IAAI,CAoCZ"}
1
+ {"version":3,"file":"focus-tracker.d.ts","sourceRoot":"","sources":["../../src/observability/focus-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC1D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;CAC9D;AAYD,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,uFAAuF;IACvF,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,GAAG,GAAE,iBAAiB,GAAG,SAA6B,EACtD,GAAG,GAAE,eAAe,GAAG,SAA2B,EAClD,GAAG,GAAE,MAAM,MAAiB,GAC3B,mBAAmB,CAoErB"}
@@ -9,22 +9,34 @@ function resolveWindow() {
9
9
  /**
10
10
  * While a wallet handoff is pending, emit a FACT on every tab-visibility
11
11
  * transition — `pageHiddenDuringHandoff` when the page is backgrounded (the user
12
- * likely left for the wallet app), `pageVisibleDuringHandoff` when it returns
13
- * (including a bfcache `pageshow`, which iOS uses when coming back from a wallet).
12
+ * likely left for the wallet app), `pageVisibleDuringHandoff` (with the segment's
13
+ * `hiddenMs`) when it returns (including a bfcache `pageshow`, which iOS uses when
14
+ * coming back from a wallet).
14
15
  *
15
- * This is the raw signal behind "did the user actually app-switch to the wallet?"
16
- * for deep-link flows — it does NOT interpret abandonment. The listeners are
17
- * scoped to the single handoff: attach right after `awaitingWallet`, and the
18
- * returned teardown (called the instant the op settles) removes them, so the
19
- * page's visibility is only observed during the blind window. SSR-safe (no-op
20
- * when there is neither `document` nor `window`).
16
+ * This is the raw signal behind "did the user actually app-switch to the wallet,
17
+ * and for how long?" for deep-link flows — it does NOT interpret abandonment. The
18
+ * listeners are scoped to the single handoff: attach right after `awaitingWallet`,
19
+ * and `stop()` (called the instant the op settles) removes them, so the page's
20
+ * visibility is only observed during the blind window. SSR-safe (no-op when there
21
+ * is neither `document` nor `window`). `summary()` lets the handoff stamp the
22
+ * cumulative backgrounding onto its terminal.
21
23
  *
22
- * @returns a teardown that removes the listeners. Always call it (even when
23
- * nothing was attached it's a no-op then) to keep the call site symmetric.
24
+ * One non-transition case: if the tracker attaches while the page is ALREADY
25
+ * hidden (handoff initiated from a backgrounded tab), it emits an initial
26
+ * synthetic `pageHiddenDuringHandoff` at attach time so the eventual return pairs
27
+ * 1:1 and the hidden segment is counted. So `pageHiddenDuringHandoff` is "every
28
+ * transition into hidden, plus an already-hidden start", not strictly transitions.
24
29
  */
25
- export function trackFocusDuringHandoff(eventManager, handoffId, platform, doc = resolveDocument(), win = resolveWindow()) {
30
+ export function trackFocusDuringHandoff(eventManager, handoffId, platform, doc = resolveDocument(), win = resolveWindow(), now = Date.now) {
31
+ let backgroundCount = 0;
32
+ let totalHiddenMs = 0;
33
+ let hiddenSince;
34
+ const summary = () => ({
35
+ backgroundCount,
36
+ backgroundedMs: totalHiddenMs + (hiddenSince !== undefined ? now() - hiddenSince : 0)
37
+ });
26
38
  if (!doc && !win)
27
- return () => { };
39
+ return { stop: () => { }, summary };
28
40
  // One physical return can fire BOTH `pageshow` (window) and a
29
41
  // `visibilitychange`→visible (document) — an iOS bfcache restore does. Dedupe
30
42
  // consecutive same-state emits so the hidden/visible events actually pair.
@@ -33,9 +45,23 @@ export function trackFocusDuringHandoff(eventManager, handoffId, platform, doc =
33
45
  if (state === lastState)
34
46
  return;
35
47
  lastState = state;
36
- eventManager.emit(state === 'hidden'
37
- ? 'pageHiddenDuringHandoff'
38
- : 'pageVisibleDuringHandoff', { handoffId, platform });
48
+ if (state === 'hidden') {
49
+ hiddenSince = now();
50
+ backgroundCount++;
51
+ eventManager.emit('pageHiddenDuringHandoff', { handoffId, platform });
52
+ return;
53
+ }
54
+ let hiddenMs;
55
+ if (hiddenSince !== undefined) {
56
+ hiddenMs = now() - hiddenSince;
57
+ totalHiddenMs += hiddenMs;
58
+ hiddenSince = undefined;
59
+ }
60
+ eventManager.emit('pageVisibleDuringHandoff', {
61
+ handoffId,
62
+ platform,
63
+ ...(hiddenMs !== undefined ? { hiddenMs } : {})
64
+ });
39
65
  };
40
66
  const onVisibility = () => {
41
67
  const hidden = doc?.visibilityState === 'hidden' || doc?.hidden === true;
@@ -49,9 +75,19 @@ export function trackFocusDuringHandoff(eventManager, handoffId, platform, doc =
49
75
  };
50
76
  doc?.addEventListener('visibilitychange', onVisibility);
51
77
  win?.addEventListener('pageshow', onPageShow);
52
- return () => {
53
- doc?.removeEventListener('visibilitychange', onVisibility);
54
- win?.removeEventListener('pageshow', onPageShow);
78
+ // Handoff started while ALREADY hidden (initiated from a backgrounded tab):
79
+ // record it as a real hidden transition so the eventual `pageVisibleDuringHandoff`
80
+ // pairs 1:1 and summary()/hiddenMs count the segment. `emitState`'s dedup makes
81
+ // the first subsequent visibilitychange→hidden a no-op.
82
+ if (doc?.visibilityState === 'hidden' || doc?.hidden === true) {
83
+ emitState('hidden');
84
+ }
85
+ return {
86
+ stop: () => {
87
+ doc?.removeEventListener('visibilitychange', onVisibility);
88
+ win?.removeEventListener('pageshow', onPageShow);
89
+ },
90
+ summary
55
91
  };
56
92
  }
57
93
  //# sourceMappingURL=focus-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../src/observability/focus-tracker.ts"],"names":[],"mappings":"AA2BA,SAAS,eAAe;IACtB,MAAM,GAAG,GAAI,UAA+C,CAAC,QAAQ,CAAA;IACrE,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5E,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,GAAG,GAAI,UAA2C,CAAC,MAAM,CAAA;IAC/D,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAA0B,EAC1B,SAAiB,EACjB,QAAkB,EAClB,MAAqC,eAAe,EAAE,EACtD,MAAmC,aAAa,EAAE;IAElD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IAEjC,8DAA8D;IAC9D,8EAA8E;IAC9E,2EAA2E;IAC3E,IAAI,SAA2C,CAAA;IAC/C,MAAM,SAAS,GAAG,CAAC,KAA2B,EAAE,EAAE;QAChD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM;QAC/B,SAAS,GAAG,KAAK,CAAA;QACjB,YAAY,CAAC,IAAI,CACf,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,0BAA0B,EAC9B,EAAE,SAAS,EAAE,QAAQ,EAAE,CACxB,CAAA;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,GAAG,EAAE,eAAe,KAAK,QAAQ,IAAI,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;QACxE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC,CAAA;IACD,gFAAgF;IAChF,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,SAAS,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC,CAAA;IAED,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;IACvD,GAAG,EAAE,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAE7C,OAAO,GAAG,EAAE;QACV,GAAG,EAAE,mBAAmB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;QAC1D,GAAG,EAAE,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"focus-tracker.js","sourceRoot":"","sources":["../../src/observability/focus-tracker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrument-handoff.d.ts","sourceRoot":"","sources":["../../src/observability/instrument-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAW7C,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,YAAY,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC1C;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,GACf,cAAc,CAQhB;AAmBD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAQD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAmHZ"}
1
+ {"version":3,"file":"instrument-handoff.d.ts","sourceRoot":"","sources":["../../src/observability/instrument-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAY7C,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,YAAY,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC1C;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,OAAO,GACf,cAAc,CAQhB;AAmBD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAQD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAiJZ"}
@@ -2,6 +2,7 @@ import { generateId } from '../utils/id';
2
2
  import { classifyError, isAbortError, isUserRejection, toWalletError } from '../utils/to-wallet-error';
3
3
  import { derivePlatform, deriveWalletFlowType } from './telemetry';
4
4
  import { trackFocusDuringHandoff } from './focus-tracker';
5
+ import { trackRelayDropsDuringHandoff } from './relay-drop-tracker';
5
6
  /** Build handoff routing facets from the active session (no address). */
6
7
  export function sessionHandoffContext(operation, session) {
7
8
  return {
@@ -81,7 +82,20 @@ export async function instrumentHandoff(options, context, fn) {
81
82
  // Observe page-visibility transitions ONLY while this handoff is pending — the
82
83
  // app-switch signal for deep-link flows (left for the wallet / came back). The
83
84
  // teardown in `finally` removes the listeners the instant the op settles.
84
- const stopFocus = trackFocusDuringHandoff(eventManager, handoffId, platform);
85
+ // Pass `now` through so backgroundedMs shares the same clock as durationMs
86
+ // (consistent, and deterministic under an injected clock in tests).
87
+ const focus = trackFocusDuringHandoff(eventManager, handoffId, platform, undefined, undefined, now);
88
+ // Count relay-socket drops seen while this handoff is pending (WalletConnect
89
+ // only — the tracker is a no-op for other modes so a WC relay flap isn't
90
+ // misattributed to an injected/TON handoff in flight at the same time).
91
+ const relayDrops = trackRelayDropsDuringHandoff(eventManager, context.connectionMode);
92
+ // Backgrounding + relay-drop summary, snapshotted onto each terminal so ONE
93
+ // event answers "backgrounded? how long? socket dropped? recovered?".
94
+ // `relayDropCount` is undefined off WalletConnect so `compactUndefined` drops it.
95
+ const handoffMetrics = () => ({
96
+ ...focus.summary(),
97
+ ...relayDrops.summary()
98
+ });
85
99
  // Same routing facets as `awaitingWallet` so every terminal is self-describing
86
100
  // (no handoffId self-join needed to know which wallet / chain / mode it closed).
87
101
  const routing = {
@@ -102,7 +116,8 @@ export async function instrumentHandoff(options, context, fn) {
102
116
  operation: context.operation,
103
117
  durationMs: now() - start,
104
118
  timeoutMs,
105
- ...routing
119
+ ...routing,
120
+ ...handoffMetrics()
106
121
  });
107
122
  }, timeoutMs)
108
123
  : undefined;
@@ -114,7 +129,8 @@ export async function instrumentHandoff(options, context, fn) {
114
129
  durationMs: now() - start,
115
130
  timedOut,
116
131
  timeoutMs: timedOut ? timeoutMs : undefined,
117
- ...routing
132
+ ...routing,
133
+ ...handoffMetrics()
118
134
  });
119
135
  return result;
120
136
  }
@@ -145,7 +161,8 @@ export async function instrumentHandoff(options, context, fn) {
145
161
  errorCode,
146
162
  failureKind,
147
163
  source,
148
- ...routing
164
+ ...routing,
165
+ ...handoffMetrics()
149
166
  });
150
167
  }
151
168
  else {
@@ -159,7 +176,8 @@ export async function instrumentHandoff(options, context, fn) {
159
176
  errorCode,
160
177
  failureKind,
161
178
  source,
162
- ...routing
179
+ ...routing,
180
+ ...handoffMetrics()
163
181
  });
164
182
  }
165
183
  throw error;
@@ -167,7 +185,8 @@ export async function instrumentHandoff(options, context, fn) {
167
185
  finally {
168
186
  if (timer)
169
187
  clearTimeout(timer);
170
- stopFocus();
188
+ relayDrops.stop();
189
+ focus.stop();
171
190
  }
172
191
  }
173
192
  //# sourceMappingURL=instrument-handoff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrument-handoff.js","sourceRoot":"","sources":["../../src/observability/instrument-handoff.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAazD,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,SAAuB,EACvB,OAAgB;IAEhB,OAAO;QACL,SAAS;QACT,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,UAAU;QACpD,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE;QAClC,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS;QAC3C,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,SAAS;KAChD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAU,CAAA;AAEnD,qEAAqE;AACrE,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CACjC,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;AACH,CAAC;AAqBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAiC,EACjC,OAAuB,EACvB,EAAoB;IAEpB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IAEnC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAA;IACnB,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS;QACT,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC;QACtE,QAAQ;QACR,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI;YAC/C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC;KACH,CAAC,CAAA;IAEF,+EAA+E;IAC/E,+EAA+E;IAC/E,0EAA0E;IAC1E,MAAM,SAAS,GAAG,uBAAuB,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE5E,+EAA+E;IAC/E,iFAAiF;IACjF,MAAM,OAAO,GAAG;QACd,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,IAAI;YAC/C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC;KACH,CAAA;IAED,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,KAAK,YAAY,CAAA;IAC3E,MAAM,KAAK,GAA8C,UAAU;QACjE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAClC,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK;gBACzB,SAAS;gBACT,GAAG,OAAO;aACX,CAAC,CAAA;QACJ,CAAC,EAAE,SAAS,CAAC;QACf,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;QACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,GAAG,EAAE,GAAG,KAAK;YACzB,QAAQ;YACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC3C,GAAG,OAAO;SACX,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6EAA6E;QAC7E,+EAA+E;QAC/E,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,8EAA8E;QAC9E,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;YAAE,MAAM,KAAK,CAAA;QAE/D,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,CAAA;QAChC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QAC/D,2EAA2E;QAC3E,qEAAqE;QACrE,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAClC,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,QAAQ;gBACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC3C,SAAS;gBACT,WAAW;gBACX,MAAM;gBACN,GAAG,OAAO;aACX,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE;gBAChC,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU;gBACV,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC3B,QAAQ;gBACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC3C,SAAS;gBACT,WAAW;gBACX,MAAM;gBACN,GAAG,OAAO;aACX,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAC9B,SAAS,EAAE,CAAA;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"instrument-handoff.js","sourceRoot":"","sources":["../../src/observability/instrument-handoff.ts"],"names":[],"mappings":"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"}
@@ -20,19 +20,9 @@ export interface AttachLifecycleOptions {
20
20
  * The active connector's `onLifecycleEvent` (already bound). `undefined` when the
21
21
  * connector can't observe lifecycle at all; the value it returns is `undefined`
22
22
  * when THIS session can't be observed (e.g. no live `.on`). Either way the
23
- * bridge emits `lifecycleTelemetryUnavailable` and becomes a no-op FOR THIS
24
- * STREAM — `subscribeAccounts` below is attached independently.
23
+ * bridge emits `lifecycleTelemetryUnavailable` and becomes a no-op.
25
24
  */
26
25
  subscribe: ((l: (e: WalletLifecycleEvent) => void) => (() => void) | undefined) | undefined;
27
- /**
28
- * The active connector's `onAccountsChanged` (already bound), carrying the
29
- * REAL account list — a separate concern from `subscribe` above (some
30
- * connectors, e.g. Tron today, implement one without the other). Absent
31
- * entirely when the connector doesn't support real account-sync.
32
- */
33
- subscribeAccounts?: ((l: (accounts: string[]) => void) => (() => void) | undefined) | undefined;
34
- /** Invoked with the resolved (post-echo-filter) real account list whenever `subscribeAccounts` delivers one. Required whenever `subscribeAccounts` is provided. */
35
- onAccountsChanged?: (accounts: string[]) => void;
36
26
  /** Resolved per-event so a mid-session account/chain change is reflected. */
37
27
  getRouting: () => LifecycleRouting;
38
28
  connectionMode: ConnectionMode;
@@ -41,9 +31,8 @@ export interface AttachLifecycleOptions {
41
31
  /** Direct page vs production iframe — stamped on `lifecycleTelemetryUnavailable`. */
42
32
  runtime?: 'direct' | 'iframe';
43
33
  /**
44
- * Window (ms) within which a wallet `chainChanged`/`accountsChanged` is
45
- * treated as the echo of a UWC-initiated `switchNetwork` and suppressed.
46
- * Default 3000.
34
+ * Window (ms) within which a wallet `chainChanged` is treated as the echo of a
35
+ * UWC-initiated `switchNetwork` and suppressed. Default 3000.
47
36
  */
48
37
  echoWindowMs?: number;
49
38
  /**
@@ -55,7 +44,6 @@ export interface AttachLifecycleOptions {
55
44
  */
56
45
  initialSwitch?: {
57
46
  chainId: NetworkId;
58
- address?: string;
59
47
  at: number;
60
48
  } | undefined;
61
49
  now?: () => number;
@@ -63,25 +51,19 @@ export interface AttachLifecycleOptions {
63
51
  /**
64
52
  * Bridge a connector's PII-safe `WalletLifecycleEvent` stream onto the event bus
65
53
  * as `walletAccountChanged` / `walletChainChanged` / `walletDisconnected` /
66
- * `walletSessionExpired`, AND (separately) forward the connector's real
67
- * account list to `onAccountsChanged` for session-sync.
54
+ * `walletSessionExpired`.
68
55
  *
69
- * Three correctness concerns are handled here:
56
+ * Two correctness concerns are handled here:
70
57
  * - **Echo suppression.** When UWC drives a `switchNetwork`, the wallet emits its
71
- * own `chainChanged`/`accountsChanged` for the same change — that's already
72
- * captured by UWC's `networkSwitched` / the switch handoff, so re-emitting it
73
- * would double-count. We watch the bus for `networkSwitched` and drop a
74
- * matching echo of either kind inside `echoWindowMs`.
75
- * - **Availability is signal, per stream.** If the connector can't observe
76
- * telemetry lifecycle, we emit `lifecycleTelemetryUnavailable` ONCE but
77
- * that signal is specific to the TELEMETRY stream. A connector missing
78
- * `onLifecycleEvent` but implementing `onAccountsChanged` (e.g. Tron today)
79
- * still gets real account-sync; the two streams are independently attached.
80
- * - **Shared emission budget.** Both streams count against the same
81
- * `MAX_LIFECYCLE_EVENTS_PER_ATTACHMENT` ceiling — a storming provider
82
- * doesn't get double budget just because two streams exist.
58
+ * own `chainChanged` for the same chain — that's already captured by UWC's
59
+ * `networkSwitched` / the switch handoff, so re-emitting it as a wallet-
60
+ * initiated `walletChainChanged` would double-count. We watch the bus for
61
+ * `networkSwitched` and drop a matching `chainChanged` inside `echoWindowMs`.
62
+ * - **Availability is signal.** If the connector can't observe lifecycle, we emit
63
+ * `lifecycleTelemetryUnavailable` ONCE so a dashboard can tell "silent" from
64
+ * "unwired".
83
65
  *
84
- * @returns a teardown that removes both connector subscriptions AND the bus watcher.
66
+ * @returns a teardown that removes the connector subscription AND the bus watcher.
85
67
  */
86
68
  export declare function attachLifecycle(opts: AttachLifecycleOptions): () => void;
87
69
  //# sourceMappingURL=lifecycle-bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-bridge.d.ts","sourceRoot":"","sources":["../../src/observability/lifecycle-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAClC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,MAAM,CAAA;AAEtD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;;OAMG;IACH,SAAS,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,GACpE,SAAS,CAAA;IACb;;;;;OAKG;IACH,iBAAiB,CAAC,EACd,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,GAC/D,SAAS,CAAA;IACb,mKAAmK;IACnK,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAChD,6EAA6E;IAC7E,UAAU,EAAE,MAAM,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,qFAAqF;IACrF,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;OAMG;IACH,aAAa,CAAC,EACV;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GACpD,SAAS,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAsOxE"}
1
+ {"version":3,"file":"lifecycle-bridge.d.ts","sourceRoot":"","sources":["../../src/observability/lifecycle-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAClC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,MAAM,CAAA;AAEtD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;OAKG;IACH,SAAS,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,GACpE,SAAS,CAAA;IACb,6EAA6E;IAC7E,UAAU,EAAE,MAAM,gBAAgB,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,qFAAqF;IACrF,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC7B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAC9D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,IAAI,CA2IxE"}