@meshconnect/uwc-core 1.2.3 → 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.
- package/dist/events.d.ts +39 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +4 -0
- package/dist/events.js.map +1 -1
- package/dist/observability/focus-tracker.d.ts +30 -11
- package/dist/observability/focus-tracker.d.ts.map +1 -1
- package/dist/observability/focus-tracker.js +54 -18
- package/dist/observability/focus-tracker.js.map +1 -1
- package/dist/observability/instrument-handoff.d.ts.map +1 -1
- package/dist/observability/instrument-handoff.js +25 -6
- package/dist/observability/instrument-handoff.js.map +1 -1
- package/dist/observability/relay-drop-tracker.d.ts +37 -0
- package/dist/observability/relay-drop-tracker.d.ts.map +1 -0
- package/dist/observability/relay-drop-tracker.js +30 -0
- package/dist/observability/relay-drop-tracker.js.map +1 -0
- package/dist/observability/telemetry.d.ts +8 -0
- package/dist/observability/telemetry.d.ts.map +1 -1
- package/dist/observability/telemetry.js +32 -5
- package/dist/observability/telemetry.js.map +1 -1
- package/dist/universal-wallet-connector.d.ts.map +1 -1
- package/dist/universal-wallet-connector.js +18 -11
- package/dist/universal-wallet-connector.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/events.ts +48 -1
- package/src/observability/focus-tracker.test.ts +95 -8
- package/src/observability/focus-tracker.ts +72 -22
- package/src/observability/instrument-handoff.test.ts +62 -0
- package/src/observability/instrument-handoff.ts +37 -6
- package/src/observability/relay-drop-tracker.test.ts +84 -0
- package/src/observability/relay-drop-tracker.ts +53 -0
- package/src/observability/telemetry.test.ts +18 -0
- package/src/observability/telemetry.ts +41 -6
- package/src/universal-wallet-connector.observability.test.ts +54 -8
- package/src/universal-wallet-connector.ts +22 -12
- 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,
|
|
@@ -186,6 +203,11 @@ export interface UWCEventMap {
|
|
|
186
203
|
timeoutMs?: number | undefined;
|
|
187
204
|
/** switchNetwork only: target chain already the active one (no-op switch). */
|
|
188
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;
|
|
189
211
|
};
|
|
190
212
|
/** The user explicitly rejected (4001 / WalletError.type === 'rejected'). Closes a handoff. */
|
|
191
213
|
walletRejected: {
|
|
@@ -203,6 +225,11 @@ export interface UWCEventMap {
|
|
|
203
225
|
errorCode?: string | undefined;
|
|
204
226
|
failureKind?: FailureKind | undefined;
|
|
205
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;
|
|
206
233
|
};
|
|
207
234
|
/** The op failed for any non-rejection reason. Closes a handoff. */
|
|
208
235
|
walletFailed: {
|
|
@@ -221,6 +248,11 @@ export interface UWCEventMap {
|
|
|
221
248
|
errorCode?: string | undefined;
|
|
222
249
|
failureKind?: FailureKind | undefined;
|
|
223
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;
|
|
224
256
|
};
|
|
225
257
|
/**
|
|
226
258
|
* Side marker: the deadline passed with the op still pending. OBSERVATIONAL —
|
|
@@ -240,6 +272,11 @@ export interface UWCEventMap {
|
|
|
240
272
|
timeoutMs: number;
|
|
241
273
|
/** switchNetwork only: target chain already the active one (no-op switch). */
|
|
242
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;
|
|
243
280
|
};
|
|
244
281
|
/** The wallet's active account/list changed. Signals THAT it changed, not which. */
|
|
245
282
|
walletAccountChanged: {
|
|
@@ -301,6 +338,8 @@ export interface UWCEventMap {
|
|
|
301
338
|
pageVisibleDuringHandoff: {
|
|
302
339
|
handoffId: string;
|
|
303
340
|
platform: Platform;
|
|
341
|
+
/** Duration the page was hidden for THIS hide→show segment (ms). */
|
|
342
|
+
hiddenMs?: number | undefined;
|
|
304
343
|
};
|
|
305
344
|
/**
|
|
306
345
|
* Back-compat catch-all. Fires after every other event above.
|
package/dist/events.d.ts.map
CHANGED
|
@@ -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,
|
package/dist/events.js.map
CHANGED
|
@@ -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;
|
|
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`
|
|
29
|
-
* (including a bfcache `pageshow`, which iOS uses when
|
|
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
|
|
33
|
-
* scoped to the single handoff: attach right after `awaitingWallet`,
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
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
|
-
*
|
|
39
|
-
*
|
|
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
|
|
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
|
|
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`
|
|
13
|
-
* (including a bfcache `pageshow`, which iOS uses when
|
|
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
|
|
17
|
-
* scoped to the single handoff: attach right after `awaitingWallet`,
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
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
|
-
*
|
|
23
|
-
*
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"instrument-handoff.js","sourceRoot":"","sources":["../../src/observability/instrument-handoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ConnectionMode } from '@meshconnect/uwc-types';
|
|
2
|
+
import type { EventManager } from '../managers/event-manager';
|
|
3
|
+
/** Handle returned by `trackRelayDropsDuringHandoff`. */
|
|
4
|
+
export interface RelayDropHandoffTracker {
|
|
5
|
+
/**
|
|
6
|
+
* Remove the relay-drop subscription. Always call on settle (no-op off
|
|
7
|
+
* WalletConnect, where nothing was subscribed).
|
|
8
|
+
*/
|
|
9
|
+
stop: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Relay-drop count at call time, or `undefined` off WalletConnect. Undefined
|
|
12
|
+
* (not `0`) so the terminal's `compactUndefined` omits the field entirely — a
|
|
13
|
+
* `0` on an injected/TON handoff would falsely imply "a WC relay we watched,
|
|
14
|
+
* and it held", when in fact no relay was in play.
|
|
15
|
+
*/
|
|
16
|
+
summary: () => {
|
|
17
|
+
relayDropCount: number | undefined;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* While a wallet handoff is pending, count relay-socket drops seen on the UWC
|
|
22
|
+
* event bus. The WalletConnect client emits `relayDisconnected` once per outage
|
|
23
|
+
* (see `attachRelayLifecycleListeners`); this is the CARE-263 signal — an
|
|
24
|
+
* iOS-suspended WebView drops the relay socket mid-handoff and strands the
|
|
25
|
+
* in-flight sign/connect response until WC core's slow heartbeat reconnects, so
|
|
26
|
+
* the drop count on a terminal explains a long/failed handoff that focus timing
|
|
27
|
+
* alone can't.
|
|
28
|
+
*
|
|
29
|
+
* WalletConnect ONLY. The relay bus is client-global, so an injected or TON
|
|
30
|
+
* handoff that happens to be in flight during a WC relay flap would otherwise
|
|
31
|
+
* misattribute the drop; off WalletConnect this is a no-op tracker whose
|
|
32
|
+
* `summary()` reports `undefined`. Mirrors `trackFocusDuringHandoff`: attach
|
|
33
|
+
* right after `awaitingWallet`, and `stop()` (called the instant the op settles)
|
|
34
|
+
* removes the subscription so drops are only counted during the blind window.
|
|
35
|
+
*/
|
|
36
|
+
export declare function trackRelayDropsDuringHandoff(eventManager: EventManager, connectionMode: ConnectionMode): RelayDropHandoffTracker;
|
|
37
|
+
//# sourceMappingURL=relay-drop-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-drop-tracker.d.ts","sourceRoot":"","sources":["../../src/observability/relay-drop-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM;QAAE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CACtD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,GAC7B,uBAAuB,CAczB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* While a wallet handoff is pending, count relay-socket drops seen on the UWC
|
|
3
|
+
* event bus. The WalletConnect client emits `relayDisconnected` once per outage
|
|
4
|
+
* (see `attachRelayLifecycleListeners`); this is the CARE-263 signal — an
|
|
5
|
+
* iOS-suspended WebView drops the relay socket mid-handoff and strands the
|
|
6
|
+
* in-flight sign/connect response until WC core's slow heartbeat reconnects, so
|
|
7
|
+
* the drop count on a terminal explains a long/failed handoff that focus timing
|
|
8
|
+
* alone can't.
|
|
9
|
+
*
|
|
10
|
+
* WalletConnect ONLY. The relay bus is client-global, so an injected or TON
|
|
11
|
+
* handoff that happens to be in flight during a WC relay flap would otherwise
|
|
12
|
+
* misattribute the drop; off WalletConnect this is a no-op tracker whose
|
|
13
|
+
* `summary()` reports `undefined`. Mirrors `trackFocusDuringHandoff`: attach
|
|
14
|
+
* right after `awaitingWallet`, and `stop()` (called the instant the op settles)
|
|
15
|
+
* removes the subscription so drops are only counted during the blind window.
|
|
16
|
+
*/
|
|
17
|
+
export function trackRelayDropsDuringHandoff(eventManager, connectionMode) {
|
|
18
|
+
if (connectionMode !== 'walletConnect') {
|
|
19
|
+
return { stop: () => { }, summary: () => ({ relayDropCount: undefined }) };
|
|
20
|
+
}
|
|
21
|
+
let relayDropCount = 0;
|
|
22
|
+
const off = eventManager.on('relayDisconnected', () => {
|
|
23
|
+
relayDropCount++;
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
stop: off,
|
|
27
|
+
summary: () => ({ relayDropCount })
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=relay-drop-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay-drop-tracker.js","sourceRoot":"","sources":["../../src/observability/relay-drop-tracker.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,4BAA4B,CAC1C,YAA0B,EAC1B,cAA8B;IAE9B,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC3E,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACpD,cAAc,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;KACpC,CAAA;AACH,CAAC"}
|
|
@@ -116,6 +116,14 @@ export interface UWCTelemetryEvent {
|
|
|
116
116
|
* handoffCovered to avoid double-counting.
|
|
117
117
|
*/
|
|
118
118
|
handoffCovered?: boolean | undefined;
|
|
119
|
+
/** `pageVisibleDuringHandoff` only: how long the page was hidden for that segment (ms). */
|
|
120
|
+
hiddenMs?: number | undefined;
|
|
121
|
+
/** Handoff terminals: cumulative time the page was backgrounded during the handoff (ms). */
|
|
122
|
+
backgroundedMs?: number | undefined;
|
|
123
|
+
/** Handoff terminals: how many times the page was backgrounded during the handoff. */
|
|
124
|
+
backgroundCount?: number | undefined;
|
|
125
|
+
/** Handoff terminals, WalletConnect only: relay-socket drops seen while the handoff was pending. */
|
|
126
|
+
relayDropCount?: number | undefined;
|
|
119
127
|
}
|
|
120
128
|
/**
|
|
121
129
|
* Vendor-agnostic telemetry sink. Consumers implement; UWC ships no vendor SDK.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/observability/telemetry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/observability/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -196,7 +196,10 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
196
196
|
durationMs: d.durationMs,
|
|
197
197
|
timedOut: d.timedOut,
|
|
198
198
|
timeoutMs: d.timeoutMs,
|
|
199
|
-
targetAlreadyActive: d.targetAlreadyActive
|
|
199
|
+
targetAlreadyActive: d.targetAlreadyActive,
|
|
200
|
+
backgroundedMs: d.backgroundedMs,
|
|
201
|
+
backgroundCount: d.backgroundCount,
|
|
202
|
+
relayDropCount: d.relayDropCount
|
|
200
203
|
};
|
|
201
204
|
}
|
|
202
205
|
case 'walletRejected': {
|
|
@@ -215,7 +218,10 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
215
218
|
targetAlreadyActive: d.targetAlreadyActive,
|
|
216
219
|
errorCode: d.errorCode,
|
|
217
220
|
failureKind: d.failureKind,
|
|
218
|
-
source: d.source
|
|
221
|
+
source: d.source,
|
|
222
|
+
backgroundedMs: d.backgroundedMs,
|
|
223
|
+
backgroundCount: d.backgroundCount,
|
|
224
|
+
relayDropCount: d.relayDropCount
|
|
219
225
|
};
|
|
220
226
|
}
|
|
221
227
|
case 'walletTimedOut': {
|
|
@@ -230,7 +236,10 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
230
236
|
handoffId: d.handoffId,
|
|
231
237
|
durationMs: d.durationMs,
|
|
232
238
|
timeoutMs: d.timeoutMs,
|
|
233
|
-
targetAlreadyActive: d.targetAlreadyActive
|
|
239
|
+
targetAlreadyActive: d.targetAlreadyActive,
|
|
240
|
+
backgroundedMs: d.backgroundedMs,
|
|
241
|
+
backgroundCount: d.backgroundCount,
|
|
242
|
+
relayDropCount: d.relayDropCount
|
|
234
243
|
};
|
|
235
244
|
}
|
|
236
245
|
case 'walletFailed': {
|
|
@@ -250,7 +259,10 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
250
259
|
errorCode: d.errorCode,
|
|
251
260
|
failureKind: d.failureKind,
|
|
252
261
|
source: d.source,
|
|
253
|
-
error: { type: d.error.type, message: scrubMessage(d.error.message) }
|
|
262
|
+
error: { type: d.error.type, message: scrubMessage(d.error.message) },
|
|
263
|
+
backgroundedMs: d.backgroundedMs,
|
|
264
|
+
backgroundCount: d.backgroundCount,
|
|
265
|
+
relayDropCount: d.relayDropCount
|
|
254
266
|
};
|
|
255
267
|
}
|
|
256
268
|
case 'capabilitiesUpdated': {
|
|
@@ -283,8 +295,15 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
283
295
|
}
|
|
284
296
|
case 'pageHiddenDuringHandoff':
|
|
285
297
|
case 'pageVisibleDuringHandoff': {
|
|
298
|
+
// Cast to the visible shape (superset). `hiddenMs` is absent on the hidden
|
|
299
|
+
// event → undefined → dropped by compactUndefined.
|
|
286
300
|
const d = data;
|
|
287
|
-
return {
|
|
301
|
+
return {
|
|
302
|
+
...base,
|
|
303
|
+
handoffId: d.handoffId,
|
|
304
|
+
platform: d.platform,
|
|
305
|
+
hiddenMs: d.hiddenMs
|
|
306
|
+
};
|
|
288
307
|
}
|
|
289
308
|
case 'bridgeError': {
|
|
290
309
|
const d = data;
|
|
@@ -308,6 +327,14 @@ function buildTelemetryEvent(name, data, sdkSessionId, now, correlationId) {
|
|
|
308
327
|
error: { type: d.error.type, message: scrubMessage(d.error.message) }
|
|
309
328
|
};
|
|
310
329
|
}
|
|
330
|
+
case 'relayDisconnected':
|
|
331
|
+
case 'relayReconnected': {
|
|
332
|
+
// Relay transport lifecycle (WalletConnect). Observational — NOT a failure,
|
|
333
|
+
// so deliberately no `failureKind` (never inflates failure metrics). The
|
|
334
|
+
// relayer carries no payload; pair the two by sdkSessionId + timestamp for
|
|
335
|
+
// the dead-window duration.
|
|
336
|
+
return { ...base, connectionMode: 'walletConnect', source: 'provider' };
|
|
337
|
+
}
|
|
311
338
|
case 'walletConnectInitError': {
|
|
312
339
|
const d = data;
|
|
313
340
|
// SignClient.init failed — the WC client never came up. Distinct from
|