@nebulr-group/bridge-auth-core 0.6.1 → 0.7.0-beta.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.
@@ -14,7 +14,7 @@ export { BridgePullCache } from './runtime-mode.js';
14
14
  export type { BridgeRuntimeMode, PullCacheOptions } from './runtime-mode.js';
15
15
  export { TelemetryBatcher } from './telemetry.js';
16
16
  export type { TelemetryBatcherConfig } from './telemetry.js';
17
- export { RealtimeClient } from './realtime.js';
18
- export type { RealtimeClientConfig, RealtimeMessage, FlagUpdateMessage, FlagRemovedMessage, UserStateMessage, SubscriptionPlanChangedMessage, BillingLifecycleMessage, QuotaUpdatedMessage, EntitlementsChangedMessage, SessionSnapshotMessage, ConnectionState, FlagChange, WebSocketLike, } from './realtime.js';
17
+ export { RealtimeClient, REALTIME_DOCS_BASE_URL, REALTIME_ANONYMOUS_TOKEN } from './realtime.js';
18
+ export type { RealtimeClientConfig, RealtimeStatus, RealtimeMessage, FlagUpdateMessage, FlagRemovedMessage, UserStateMessage, SubscriptionPlanChangedMessage, BillingLifecycleMessage, QuotaUpdatedMessage, EntitlementsChangedMessage, SessionSnapshotMessage, ConnectionState, FlagChange, WebSocketLike, } from './realtime.js';
19
19
  export { BRIDGE_CONTEXT_HEADER, serializeContext, deserializeContext, serverInstanceId, } from './propagation.js';
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,MAAM,EACN,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,IAAI,oBAAoB,GACnC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,MAAM,EACN,IAAI,EACJ,SAAS,EACT,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,UAAU,IAAI,oBAAoB,GACnC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACjG,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -15,7 +15,7 @@ export { BridgePullCache } from './runtime-mode.js';
15
15
  // SDK telemetry batcher (TBP-157)
16
16
  export { TelemetryBatcher } from './telemetry.js';
17
17
  // SDK realtime client (TBP-150)
18
- export { RealtimeClient } from './realtime.js';
18
+ export { RealtimeClient, REALTIME_DOCS_BASE_URL, REALTIME_ANONYMOUS_TOKEN } from './realtime.js';
19
19
  // FE → BE context propagation (TBP-171) + server-instance ID (TBP-172)
20
20
  export { BRIDGE_CONTEXT_HEADER, serializeContext, deserializeContext, serverInstanceId, } from './propagation.js';
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAUxB,iDAAiD;AACjD,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAWxB,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcxC,yDAAyD;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAMvB,2CAA2C;AAC3C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAUlC,wEAAwE;AACxE,uDAAuD;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAOnE,2EAA2E;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiB/C,uEAAuE;AACvE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAUxB,iDAAiD;AACjD,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAWxB,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAcxC,yDAAyD;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAMvB,2CAA2C;AAC3C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAUlC,wEAAwE;AACxE,uDAAuD;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAOnE,2EAA2E;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAkBjG,uEAAuE;AACvE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -32,6 +32,35 @@ export interface RealtimeClientConfig {
32
32
  * Falls back to apiKey when this is undefined or returns undefined.
33
33
  */
34
34
  getAuthToken?: () => string | undefined;
35
+ /**
36
+ * The host SDK's token refresh (TBP-643). Called at most once per refused
37
+ * connection episode; must resolve to the NEW access token (or undefined if
38
+ * the session could not be refreshed). The client reconnects immediately
39
+ * with the returned token instead of waiting out the backoff.
40
+ *
41
+ * Without it, a refused session is diagnosed and parked in `'unauthorized'`
42
+ * until `reauthorize()` is called or the token changes.
43
+ */
44
+ refreshAuthToken?: () => Promise<string | undefined>;
45
+ /**
46
+ * When a refusal can't be explained client-side, ask Bridge why — once per
47
+ * episode — via `POST <apiBaseUrl>/realtime/diagnose`. Default true.
48
+ */
49
+ diagnose?: boolean;
50
+ /**
51
+ * Base URL of the realtime error docs; each reason is an anchor on it.
52
+ * Default {@link REALTIME_DOCS_BASE_URL}.
53
+ */
54
+ docsBaseUrl?: string;
55
+ /**
56
+ * Tell Bridge how this app's realtime connection is doing, so the admin UI
57
+ * can show per-app live-update health (TBP-645). Fire-and-forget
58
+ * `POST <apiBaseUrl>/account/auth/realtime-status` with `x-app-id`, sent
59
+ * when the connection opens (at most once per 10 minutes) and once per
60
+ * refused/degraded episode. Never awaited, never throws, carries no token.
61
+ * Default true; set false to opt out.
62
+ */
63
+ reportStatus?: boolean;
35
64
  /**
36
65
  * Optional logger. Defaults to a non-debug logger, which still emits
37
66
  * `error` — deliberate: a rejected subscription means realtime is silently
@@ -39,6 +68,36 @@ export interface RealtimeClientConfig {
39
68
  */
40
69
  logger?: Logger;
41
70
  }
71
+ export declare const REALTIME_DOCS_BASE_URL = "https://thebridge.dev/docs/live-updates/troubleshooting/";
72
+ /**
73
+ * The AppSync `Authorization` value a signed-out session presents. Must be
74
+ * non-empty (AppSync rejects '' before the authorizer runs) and must match
75
+ * what the bridge-api authorizer recognises as "no token" byte for byte.
76
+ */
77
+ export declare const REALTIME_ANONYMOUS_TOKEN = "anonymous";
78
+ /**
79
+ * What the realtime connection is doing right now, and — when it is not
80
+ * working — why, whose move it is (`side`), and whether it is still trying.
81
+ *
82
+ * `side` exists because the same symptom ("no live updates") has owners who
83
+ * need opposite actions: `app` = the host app's session/token handling,
84
+ * `config` = the app's Bridge settings disagree with the session, `bridge` =
85
+ * Bridge refused a token that checks out (nothing to change in the app),
86
+ * `network` = transient transport trouble the client is retrying through.
87
+ */
88
+ export interface RealtimeStatus {
89
+ state: ConnectionState;
90
+ /** Machine-readable reason, also the anchor on `docsUrl`. */
91
+ reason?: string;
92
+ side?: 'app' | 'bridge' | 'config' | 'network';
93
+ /** True while the client will keep trying on its own. */
94
+ retrying: boolean;
95
+ docsUrl?: string;
96
+ /** Per-episode correlation id — also sent to Bridge as `x-bridge-realtime-ref`. */
97
+ ref?: string;
98
+ /** `Date.now()` at the last state/reason change. */
99
+ since: number;
100
+ }
42
101
  /** Minimal WebSocket surface the client uses. */
43
102
  export interface WebSocketLike {
44
103
  readyState: number;
@@ -215,7 +274,7 @@ export interface FlagChange {
215
274
  * Before this state existed such a connection reported `open`, which is how a
216
275
  * dead realtime transport passed for healthy in production for months.
217
276
  */
218
- export type ConnectionState = 'idle' | 'connecting' | 'open' | 'degraded' | 'closed';
277
+ export type ConnectionState = 'idle' | 'connecting' | 'open' | 'degraded' | 'closed' | 'unauthorized';
219
278
  export declare class RealtimeClient {
220
279
  private readonly cfg;
221
280
  private ws?;
@@ -247,7 +306,45 @@ export declare class RealtimeClient {
247
306
  private ackedChannels;
248
307
  private failedChannels;
249
308
  private subscribeAckTimer?;
309
+ private status;
310
+ private onStatusChangeHook?;
311
+ /** The current run of trouble, if any — see FaultEpisode. */
312
+ private episode?;
313
+ /** Set while parked in 'unauthorized'. */
314
+ private refusal?;
315
+ /**
316
+ * token|reason|side of the last refusal we logged. A resume (tab refocus,
317
+ * `online`) that ends in the identical refusal is the same news — it goes
318
+ * to debug, not another console error.
319
+ */
320
+ private lastRefusalKey?;
321
+ /**
322
+ * Token handed back by `refreshAuthToken`, used while the host's
323
+ * `getAuthToken()` still returns the token it replaced (`staleToken`). Hosts
324
+ * may not have updated their store by the time the refresh resolves.
325
+ */
326
+ private freshToken?;
327
+ private staleToken?;
328
+ /** A socket we closed on purpose (setUserId & co.) — its close is not a fault. */
329
+ private expectedCloseWs?;
330
+ private resumeListenersInstalled;
331
+ /** Runs only while parked — see startParkedTokenCheck. */
332
+ private parkedTokenTimer?;
333
+ /** `Date.now()` of the last 'open' report — see STATUS_REPORT_OPEN_INTERVAL_MS. */
334
+ private lastOpenReportAt?;
250
335
  constructor(cfg: RealtimeClientConfig);
336
+ /**
337
+ * Current connection status with the reason, whose side a fault is on, and
338
+ * whether the client is still retrying (TBP-643). `getState()` is the same
339
+ * `state` without the explanation.
340
+ */
341
+ getStatus(): RealtimeStatus;
342
+ /**
343
+ * Register a hook fired on every status change (state, reason, side or
344
+ * retrying). Use it to drive a "live updates off" indicator. Hook errors are
345
+ * swallowed, like every other hook here.
346
+ */
347
+ setOnStatusChange(hook: (status: RealtimeStatus) => void): void;
251
348
  /** Attach to a BridgeFlags instance — flag updates auto-apply to its cache. */
252
349
  attach(bridge: BridgeFlags): void;
253
350
  /** Register a hook for per-user channel messages. */
@@ -406,8 +503,10 @@ export declare class RealtimeClient {
406
503
  * `appsync-events.adapter.ts:87` and `appsync-authorizer.handler.ts:59`).
407
504
  *
408
505
  * Anonymous flow: `getAuthToken()` returns undefined → Authorization sent as
409
- * empty string. The Lambda authorizer accepts that only for `app:<appId>`
410
- * channels whose origin matches the app's allowedOrigins (demo path).
506
+ * the marker `REALTIME_ANONYMOUS_TOKEN` (see buildAppSyncAuthHeader for why
507
+ * it can't be empty). The Lambda authorizer treats exactly that value as "no
508
+ * token": CONNECT allowed, `app:<appId>` channels origin-checked against the
509
+ * app's allowedOrigins, everything else denied `no_token`.
411
510
  */
412
511
  private openAppSyncWebSocket;
413
512
  private resetSubscribeTracking;
@@ -424,6 +523,85 @@ export declare class RealtimeClient {
424
523
  private emitFlagChange;
425
524
  private handleMessage;
426
525
  private scheduleReconnect;
526
+ private fireReconnect;
527
+ private setState;
528
+ private publishStatus;
529
+ private statusDetail;
530
+ /** The token to present — see `freshToken`. */
531
+ private currentToken;
532
+ /** The transport is usable. Closes any episode, logging recovery if we logged the fault. */
533
+ private markOpen;
534
+ /** Called from onclose of the CURRENT socket: an unplanned close starts a transient episode. */
535
+ private noteClose;
536
+ /**
537
+ * Open a transient episode if none is running, and log its start ONCE.
538
+ * Server-reported errors log at `error` (they used to, and they are real
539
+ * faults); plain drops and fetch failures log at `warn` — sleep/wake and
540
+ * wifi changes cause them constantly and they fix themselves, so they must
541
+ * not paint every end-user console red.
542
+ */
543
+ private beginTransient;
544
+ /** Drop a socket without letting its onclose schedule a reconnect. */
545
+ private detachSocket;
546
+ /**
547
+ * Bridge refused `token` (TBP-643). Policy, in order:
548
+ * a. client-side pre-checks on the token — cheap, and they name the fix;
549
+ * b. one host refresh + an immediate reconnect, if the host gave us a hook;
550
+ * c. if still refused and the pre-checks found nothing, ask Bridge once;
551
+ * d. park in 'unauthorized', stop reconnecting, log ONE message.
552
+ * Resumes on reauthorize(), a changed token on start(), `online`, or the
553
+ * tab becoming visible.
554
+ */
555
+ private handleAuthRefusal;
556
+ /** Explain a refusal from the token alone. Decodes without verifying — this is diagnosis, not auth. */
557
+ private precheckToken;
558
+ /**
559
+ * Ask Bridge why it refused (contract: `POST /realtime/diagnose` →
560
+ * `{ ok, reason, side }`, sharing the authorizer's classifier). The endpoint
561
+ * may not exist yet — any failure returns undefined and the caller falls
562
+ * back to 'refused'.
563
+ */
564
+ private diagnoseRefusal;
565
+ private enterUnauthorized;
566
+ /**
567
+ * TBP-645 — fire-and-forget health report. Returns whether a report was
568
+ * dispatched (false when opted out, or there is no appId to attribute it
569
+ * to). Never awaited by the caller and never throws: this runs on the
570
+ * connect path, and telemetry must not be able to hurt the connection. The
571
+ * endpoint may not exist yet — every response, 404 included, is ignored.
572
+ */
573
+ private sendStatusReport;
574
+ private postStatusReport;
575
+ private clearRefusal;
576
+ /**
577
+ * A parked client must resume when the host's token changes — most
578
+ * importantly when a signed-out session signs in (undefined → token).
579
+ * Framework SDKs only call reauthorize() when one token REPLACES another
580
+ * (TBP-644 fixes that), so auth-core can't rely on being told.
581
+ *
582
+ * Chosen over a `notifyAuthTokenChanged()` API because it needs no host
583
+ * change — the missing host call is the bug. It is cheap and bounded: it
584
+ * runs only while parked, calls the synchronous `getAuthToken()` getter (no
585
+ * network), and resumes only on a token DIFFERENT from the refused one, so
586
+ * an unchanged session can never turn it into a reconnect loop.
587
+ */
588
+ private startParkedTokenCheck;
589
+ /**
590
+ * The one message a developer gets per refused episode. Product terms, whose
591
+ * side it is, what still works, one next step, a docs link and a ref.
592
+ */
593
+ private formatRefusal;
594
+ private readonly onOnline;
595
+ private readonly onVisibilityChange;
596
+ private installResumeListeners;
597
+ private removeResumeListeners;
598
+ /**
599
+ * The network came back or the user returned to the tab: the conditions
600
+ * behind a refusal may have changed (host refreshed the session, clock
601
+ * caught up), so a parked client gets one new episode; a client waiting out
602
+ * a backoff tries now instead.
603
+ */
604
+ private nudge;
427
605
  }
428
606
  /**
429
607
  * Translate internal channel name (`<ns>:<id>`) to the AppSync wire form
@@ -1 +1 @@
1
- {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/flags/realtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/flags/realtime.ts"],"names":[],"mappings":"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"}