@beignet/react-query 0.0.54 → 0.0.55

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @beignet/react-query
2
2
 
3
+ ## 0.0.55
4
+
5
+ ### Patch Changes
6
+
7
+ - a3085a6: Coordinate broadcast refreshes with matching pending mutations or custom write
8
+ gates. Add connection admission with automatic resource cleanup, and expose
9
+ connection/reconciliation reasons. Keep the 60-second default, require valid
10
+ lifetime metadata, and use explicit connection-wide renewal control frames.
11
+
3
12
  ## 0.0.54
4
13
 
5
14
  ### Patch Changes
package/README.md CHANGED
@@ -852,6 +852,174 @@ optimistic mutation state separately so a remote refetch does not overwrite an
852
852
  in-flight edit. See the [broadcasting guide](https://beignetjs.com/broadcasting)
853
853
  for complete channel and React Query examples.
854
854
 
855
+ ### Delay broadcast refreshes during saves
856
+
857
+ `createBroadcastQuerySubscription` already coordinates queries that are fetching.
858
+ Its optional `refreshGate` also coordinates pending writes. The new
859
+ `createBroadcastMutationRefreshGate` helper covers ordinary TanStack mutations;
860
+ the new `BroadcastRefreshGate` interface supports application write queues.
861
+ Existing subscriptions need no changes when this coordination is unnecessary.
862
+
863
+ For task queries, put the following in `features/tasks/client/broadcasts.ts`.
864
+ This example assumes browser-safe `taskChanges` in `features/tasks/channels.ts`
865
+ with a `workspaceId` parameter, and existing `listTasks` and `saveTask` contracts.
866
+ `listTasks` accepts a `workspaceId` query parameter. Use the returned mutation
867
+ options with `useMutation`, retaining your optimistic update/rollback callbacks:
868
+
869
+ ```ts
870
+ import type { BroadcastClient } from "@beignet/core/broadcasting/client";
871
+ import {
872
+ createBroadcastMutationRefreshGate,
873
+ createBroadcastQuerySubscription,
874
+ } from "@beignet/react-query";
875
+ import type { QueryClient } from "@tanstack/react-query";
876
+ import { rq } from "@/client";
877
+ import { taskChanges } from "@/features/tasks/channels";
878
+ import { listTasks, saveTask } from "@/features/tasks/contracts";
879
+
880
+ export function saveTaskMutationOptions(workspaceId: string) {
881
+ return rq(saveTask).mutationOptions({
882
+ mutationKey: ["tasks", workspaceId, "save"],
883
+ });
884
+ }
885
+
886
+ export function subscribeToTaskChanges(
887
+ client: BroadcastClient,
888
+ queryClient: QueryClient,
889
+ workspaceId: string,
890
+ ) {
891
+ const taskQueries = rq(listTasks).filter({ query: { workspaceId } });
892
+ return createBroadcastQuerySubscription({
893
+ client, queryClient, channel: taskChanges, params: { workspaceId },
894
+ invalidates: () => [taskQueries],
895
+ reconciles: [taskQueries],
896
+ refreshGate: createBroadcastMutationRefreshGate({
897
+ queryClient,
898
+ mutations: { mutationKey: ["tasks", workspaceId] },
899
+ }),
900
+ });
901
+ }
902
+ ```
903
+
904
+ `mutations` accepts TanStack's `mutationKey`, `exact`, and `predicate` filters.
905
+ Key matching is inclusive unless `exact: true`. Give every related write the
906
+ same key prefix, including creates and deletes that affect lists or counters.
907
+ Include workspace or resource scope when appropriate. Unrelated mutations do
908
+ not block. Omitting a key/predicate deliberately selects all mutations.
909
+
910
+ The helper always checks **pending** mutations; `status` is not configurable.
911
+ Paused pending mutations (offline or waiting for a mutation scope) also block,
912
+ as do overlapping matching mutations until all settle. A custom predicate can
913
+ exclude mutations, but excluding paused writes can refresh over unsaved edits.
914
+ The gate has no timeout that overrides your blocking policy.
915
+
916
+ ### Combine mutations with an external write lock
917
+
918
+ Put this application helper beside the feature's broadcast query mappings.
919
+ Pass `createTaskWriteRefreshGate({ queryClient, workspaceId, writeLock })` as
920
+ `refreshGate` in the subscription above. The external lock owns its state and
921
+ notifies after changes; it may inspect the query key to block only related
922
+ queries. Beignet owns listening, queuing, and cleanup:
923
+
924
+ ```ts
925
+ import {
926
+ type BroadcastRefreshGate,
927
+ createBroadcastMutationRefreshGate,
928
+ } from "@beignet/react-query";
929
+ import type { Query, QueryClient } from "@tanstack/react-query";
930
+
931
+ // Application-owned write queue/lock. It can block different queries independently.
932
+ export interface TaskWriteLock {
933
+ isBlocked(query: Query): boolean;
934
+ subscribe(onChange: () => void): () => void;
935
+ }
936
+
937
+ export function createTaskWriteRefreshGate({
938
+ queryClient, workspaceId, writeLock,
939
+ }: { queryClient: QueryClient; workspaceId: string; writeLock: TaskWriteLock }): BroadcastRefreshGate {
940
+ const mutations = createBroadcastMutationRefreshGate({
941
+ queryClient,
942
+ mutations: { mutationKey: ["tasks", workspaceId] },
943
+ });
944
+ return {
945
+ isBlocked: (query) => mutations.isBlocked(query) || writeLock.isBlocked(query),
946
+ subscribe(onChange) {
947
+ const stopMutations = mutations.subscribe(onChange);
948
+ try {
949
+ const stopLock = writeLock.subscribe(onChange);
950
+ return () => { try { stopLock(); } finally { stopMutations(); } };
951
+ } catch (error) {
952
+ stopMutations();
953
+ throw error;
954
+ }
955
+ },
956
+ };
957
+ }
958
+ ```
959
+
960
+ Both event invalidations and readiness/reconnect reconciliation queue matching
961
+ **existing queries**, deduplicated per query. A blocked query is neither
962
+ invalidated nor refetched by the subscription. The gate is subscribed before
963
+ checking state to avoid a missed wakeup and checked again immediately before
964
+ queued work begins. Opening it schedules active queries for refresh and marks
965
+ inactive queries stale. TanStack's enabled/static rules still control fetching.
966
+ If it closes again, unprocessed work stays queued. A hint during an existing
967
+ fetch remains pending for a subsequent refresh after that fetch settles.
968
+
969
+ The gate controls **broadcast-driven refreshes only**. Polling, manual refresh,
970
+ mutation callbacks that invalidate queries, already-running requests, and
971
+ optimistic cache updates remain application-owned. If all refresh sources must
972
+ respect a write lock, apply that policy to those sources too.
973
+
974
+ Unsubscribe removes transport, query-cache, and gate listeners, discards queued
975
+ work, and prevents deferred callbacks from starting refreshes. It cannot undo
976
+ an already-started request. Gate checks that throw report through `onError`,
977
+ keep the query pending, and stay blocked until a later gate notification or
978
+ broadcast hint retries the check. They do not poll or retry themselves. If
979
+ `subscribe` throws, the subscription stays blocked: fix the cause, unsubscribe,
980
+ and create a new subscription. Custom gates must release partially acquired
981
+ listeners before throwing. Unsubscribe failures are reported while the other
982
+ listeners are still released.
983
+
984
+ ### Diagnose connection changes
985
+
986
+ `onSync(info)` and `onStatusChange(status, info)` receive
987
+ `BroadcastConnectionInfo` from `@beignet/core/broadcasting/client`. Callbacks
988
+ may omit the metadata argument when they do not need it.
989
+ `createBroadcastQuerySubscription` forwards status metadata and accepts an
990
+ optional `onSync(info)` observer; its reconciliation is still scheduled even
991
+ when that observer throws. This notification describes readiness, not completion
992
+ of queued or gated query refreshes. Do not refetch from that observer to bypass
993
+ the gate accidentally.
994
+
995
+ | `info.reason` | What Beignet knows |
996
+ | --- | --- |
997
+ | `initial` | The first physical connection attempt. |
998
+ | `planned-renewal` | The server explicitly announced renewal and then ended the stream normally without further traffic. |
999
+ | `subscription-change` | Adding or removing a distinct channel restarted the multiplexed connection. |
1000
+ | `interruption` | A timeout, transport/protocol failure, or retryable rejection interrupted the connection. |
1001
+ | `unknown` | An unexplained EOF, explicit resume, or browser wakeup has no more precise known cause. |
1002
+
1003
+ Readiness reports the reason for that physical connection; another observer
1004
+ joining an already-ready channel sees the same information. Reconnecting status
1005
+ reports the known reason for restarting. An elapsed lifetime alone never proves
1006
+ planned renewal. Servers send an explicit, connection-wide renewal control frame
1007
+ before closing normally. An unexplained EOF stays `unknown`. A renewal frame
1008
+ followed by a stall produces `interruption` when a watchdog fires. Further traffic
1009
+ after the frame makes a later EOF `unknown`, including an incomplete frame.
1010
+ Reconciliation continues after **every** renewal because events have no replay.
1011
+ Planned renewal is a lifecycle change, not an `onError` failure.
1012
+
1013
+ Routes use the existing `broadcast` instrumentation watcher for admission,
1014
+ connection, and cleanup events. Server closure details report `planned-renewal`,
1015
+ `provider-disconnect`, `buffer-overflow`, `setup-failure`, or `unknown` as known
1016
+ locally; the server cannot infer why a browser cancelled. An optional
1017
+ `instrumentation` sink on `createBroadcastClient` uses the existing
1018
+ `ProviderInstrumentationPort` to record `broadcast.connecting`, `broadcast.ready`,
1019
+ and `broadcast.closed` with browser reasons. These events contain safe counts,
1020
+ durations, and reasons, never headers, credentials, payloads, or channel params.
1021
+ Keep custom logging equally restrained.
1022
+
855
1023
  ## License
856
1024
 
857
1025
  MIT
@@ -1,6 +1,19 @@
1
1
  import type { ChannelDefinition, InferChannelEvent, InferChannelParams } from "@beignet/core/broadcasting";
2
- import type { BroadcastClient, BroadcastClientStatus, BroadcastClientSubscription } from "@beignet/core/broadcasting/client";
3
- import type { QueryClient, QueryFilters } from "@tanstack/react-query";
2
+ import type { BroadcastClient, BroadcastClientStatus, BroadcastClientSubscription, BroadcastConnectionInfo } from "@beignet/core/broadcasting/client";
3
+ import type { MutationFilters, Query, QueryClient, QueryFilters } from "@tanstack/react-query";
4
+ /** Application policy for broadcast-driven refreshes only. Checks must be synchronous. */
5
+ export interface BroadcastRefreshGate {
6
+ isBlocked(query: Query): boolean;
7
+ /** Notify after policy changes. Return cleanup; do not acquire resources before throwing. */
8
+ subscribe(onChange: () => void): () => void;
9
+ }
10
+ export interface BroadcastMutationRefreshGateOptions {
11
+ queryClient: QueryClient;
12
+ /** Native mutationKey/exact/predicate matching. Only pending mutations block, including paused ones. */
13
+ mutations: Omit<MutationFilters, "status">;
14
+ }
15
+ /** Coordinate related pending mutations without application subscription bookkeeping. */
16
+ export declare function createBroadcastMutationRefreshGate(options: BroadcastMutationRefreshGateOptions): BroadcastRefreshGate;
4
17
  export interface BroadcastQuerySubscriptionOptions<C extends ChannelDefinition> {
5
18
  client: BroadcastClient;
6
19
  channel: C;
@@ -9,8 +22,11 @@ export interface BroadcastQuerySubscriptionOptions<C extends ChannelDefinition>
9
22
  invalidates: (event: InferChannelEvent<C>) => readonly QueryFilters[];
10
23
  /** All state covered by the channel, including unread counters and filtered lists. */
11
24
  reconciles: readonly QueryFilters[];
25
+ refreshGate?: BroadcastRefreshGate;
26
+ /** Readiness notification; queued reconciliation may still be blocked by the gate. */
27
+ onSync?: (info: BroadcastConnectionInfo) => void | Promise<void>;
12
28
  onError?: (error: unknown) => void;
13
- onStatusChange?: (status: BroadcastClientStatus) => void;
29
+ onStatusChange?: (status: BroadcastClientStatus, info: BroadcastConnectionInfo) => void;
14
30
  }
15
31
  /** Invalidate hints and refetch after readiness. An event during a fetch schedules one later fetch. */
16
32
  export declare function createBroadcastQuerySubscription<C extends ChannelDefinition>(options: BroadcastQuerySubscriptionOptions<C>): BroadcastClientSubscription;
@@ -1 +1 @@
1
- {"version":3,"file":"broadcasting.d.ts","sourceRoot":"","sources":["../src/broadcasting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAS,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,WAAW,iCAAiC,CAChD,CAAC,SAAS,iBAAiB;IAE3B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,SAAS,YAAY,EAAE,CAAC;IACtE,sFAAsF;IACtF,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC1D;AAED,uGAAuG;AACvG,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,iBAAiB,EAC1E,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC,GAC5C,2BAA2B,CA6E7B"}
1
+ {"version":3,"file":"broadcasting.d.ts","sourceRoot":"","sources":["../src/broadcasting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAC;AAE/B,0FAA0F;AAC1F,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,6FAA6F;IAC7F,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,mCAAmC;IAClD,WAAW,EAAE,WAAW,CAAC;IACzB,wGAAwG;IACxG,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;CAC5C;AAED,yFAAyF;AACzF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,mCAAmC,GAC3C,oBAAoB,CAMtB;AAED,MAAM,WAAW,iCAAiC,CAChD,CAAC,SAAS,iBAAiB;IAE3B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,SAAS,YAAY,EAAE,CAAC;IACtE,sFAAsF;IACtF,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,uBAAuB,KAC1B,IAAI,CAAC;CACX;AAED,uGAAuG;AACvG,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,iBAAiB,EAC1E,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC,GAC5C,2BAA2B,CAiJ7B"}
@@ -1,9 +1,45 @@
1
+ /** Coordinate related pending mutations without application subscription bookkeeping. */
2
+ export function createBroadcastMutationRefreshGate(options) {
3
+ return {
4
+ isBlocked: () => options.queryClient.isMutating(options.mutations) > 0,
5
+ subscribe: (onChange) => options.queryClient.getMutationCache().subscribe(onChange),
6
+ };
7
+ }
1
8
  /** Invalidate hints and refetch after readiness. An event during a fetch schedules one later fetch. */
2
9
  export function createBroadcastQuerySubscription(options) {
3
10
  const cache = options.queryClient.getQueryCache();
4
11
  const pending = new Set();
5
12
  let closed = false;
6
13
  let queued = false;
14
+ const failed = new Set();
15
+ let gateSubscribed = !options.refreshGate;
16
+ function report(error) {
17
+ if (closed)
18
+ return;
19
+ try {
20
+ options.onError?.(error);
21
+ }
22
+ catch {
23
+ /* Reporting cannot disrupt observers. */
24
+ }
25
+ }
26
+ function blocked(query) {
27
+ if (!gateSubscribed || failed.has(query))
28
+ return true;
29
+ try {
30
+ if (!options.refreshGate)
31
+ return false;
32
+ const result = options.refreshGate.isBlocked(query);
33
+ if (typeof result !== "boolean")
34
+ throw new TypeError("Broadcast refresh gate isBlocked must return a boolean");
35
+ return result;
36
+ }
37
+ catch (error) {
38
+ failed.add(query);
39
+ report(error);
40
+ return true;
41
+ }
42
+ }
7
43
  function flush() {
8
44
  if (queued || closed)
9
45
  return;
@@ -12,31 +48,35 @@ export function createBroadcastQuerySubscription(options) {
12
48
  queued = false;
13
49
  if (closed)
14
50
  return;
15
- for (const query of pending) {
16
- if (query.state.fetchStatus !== "idle")
51
+ // A snapshot prevents synchronous callbacks from consuming a new hint in this pass.
52
+ for (const query of [...pending]) {
53
+ if (closed)
54
+ return;
55
+ if (query.state.fetchStatus !== "idle" || blocked(query) || closed)
17
56
  continue;
18
57
  pending.delete(query);
19
58
  // A completed fetch clears invalidation, even when it began before the hint.
20
59
  query.invalidate();
21
- // Inactive queries remain stale. TanStack owns enabled/static and observer behavior.
60
+ // Cache observers may close the gate (or unsubscribe) during invalidation.
61
+ if (closed)
62
+ return;
63
+ if (blocked(query) || closed) {
64
+ if (!closed)
65
+ pending.add(query);
66
+ continue;
67
+ }
68
+ // Inactive queries remain stale. TanStack owns enabled/static behavior.
22
69
  void options.queryClient
23
- .refetchQueries({ queryKey: query.queryKey, exact: true, type: "active" }, { cancelRefetch: false, throwOnError: true })
24
- .catch((error) => {
25
- if (!closed) {
26
- try {
27
- options.onError?.(error);
28
- }
29
- catch {
30
- /* Reporting cannot disrupt query observers. */
31
- }
32
- }
33
- });
70
+ .refetchQueries({ predicate: (candidate) => candidate === query, type: "active" }, { cancelRefetch: false, throwOnError: true })
71
+ .catch(report);
34
72
  }
35
73
  });
36
74
  }
37
75
  const unsubscribeCache = cache.subscribe((event) => {
38
- if (event.type === "removed")
76
+ if (event.type === "removed") {
39
77
  pending.delete(event.query);
78
+ failed.delete(event.query);
79
+ }
40
80
  if (event.type === "updated" &&
41
81
  event.query.state.fetchStatus === "idle" &&
42
82
  pending.has(event.query))
@@ -48,24 +88,62 @@ export function createBroadcastQuerySubscription(options) {
48
88
  for (const filter of filters)
49
89
  for (const query of cache.findAll(filter)) {
50
90
  pending.add(query);
51
- query.invalidate();
91
+ failed.delete(query);
92
+ // Preserve immediate staleness for existing subscriptions without a gate.
93
+ if (!options.refreshGate)
94
+ query.invalidate();
52
95
  }
53
96
  flush();
54
97
  }
98
+ let unsubscribeGate;
99
+ if (options.refreshGate) {
100
+ try {
101
+ // Subscribe before the first check. A change during subscription still schedules a check.
102
+ const cleanup = options.refreshGate.subscribe(() => {
103
+ failed.clear();
104
+ flush();
105
+ });
106
+ if (typeof cleanup !== "function")
107
+ throw new TypeError("Broadcast refresh gate subscribe must return a cleanup function");
108
+ unsubscribeGate = cleanup;
109
+ gateSubscribed = true;
110
+ }
111
+ catch (error) {
112
+ report(error);
113
+ }
114
+ }
115
+ function dispose() {
116
+ unsubscribeCache();
117
+ try {
118
+ unsubscribeGate?.();
119
+ }
120
+ catch (error) {
121
+ try {
122
+ options.onError?.(error);
123
+ }
124
+ catch {
125
+ /* Cleanup must finish. */
126
+ }
127
+ }
128
+ pending.clear();
129
+ failed.clear();
130
+ }
55
131
  let subscription;
56
132
  try {
57
133
  subscription = options.client.subscribe(options.channel, {
58
134
  params: options.params,
59
135
  onEvent: (event) => invalidate(options.invalidates(event)),
60
- onSync: () => invalidate(options.reconciles),
136
+ onSync: (info) => {
137
+ invalidate(options.reconciles);
138
+ return options.onSync?.(info);
139
+ },
61
140
  onError: options.onError,
62
141
  onStatusChange: options.onStatusChange,
63
142
  });
64
143
  }
65
144
  catch (error) {
66
145
  closed = true;
67
- unsubscribeCache();
68
- pending.clear();
146
+ dispose();
69
147
  throw error;
70
148
  }
71
149
  return {
@@ -74,9 +152,12 @@ export function createBroadcastQuerySubscription(options) {
74
152
  if (closed)
75
153
  return;
76
154
  closed = true;
77
- subscription.unsubscribe();
78
- unsubscribeCache();
79
- pending.clear();
155
+ try {
156
+ subscription.unsubscribe();
157
+ }
158
+ finally {
159
+ dispose();
160
+ }
80
161
  },
81
162
  };
82
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"broadcasting.js","sourceRoot":"","sources":["../src/broadcasting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broadcasting.js","sourceRoot":"","sources":["../src/broadcasting.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Client, Endpoint, EndpointCallArgs, InferBody, InferEndpointContractError, InferPathParams, InferQuery, InferSuccessResponse } from "@beignet/core/client";
2
- export { type BroadcastQuerySubscriptionOptions, createBroadcastQuerySubscription, } from "./broadcasting.js";
2
+ export { type BroadcastMutationRefreshGateOptions, type BroadcastQuerySubscriptionOptions, type BroadcastRefreshGate, createBroadcastMutationRefreshGate, createBroadcastQuerySubscription, } from "./broadcasting.js";
3
3
  import { type ContractLike, type HttpContractConfig, type ResolveContract } from "@beignet/core/contracts";
4
4
  import type { InfiniteData, InvalidateQueryFilters, QueryClient, QueryFunction, QueryKey, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
5
5
  import { type ContractCacheEntry, type UpdateCachedQueriesOptions } from "./cache.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { createBroadcastQuerySubscription, } from "./broadcasting.js";
1
+ export { createBroadcastMutationRefreshGate, createBroadcastQuerySubscription, } from "./broadcasting.js";
2
2
  import { resolveContract, } from "@beignet/core/contracts";
3
3
  import { readCacheParams, } from "./cache.js";
4
4
  function mergeParamObjects(base, patch) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beignet/react-query",
3
- "version": "0.0.54",
3
+ "version": "0.0.55",
4
4
  "type": "module",
5
5
  "description": "TanStack Query integration for Beignet",
6
6
  "main": "./dist/index.js",
@@ -192,3 +192,9 @@ Preserve optimistic mutation state while a mutation is pending and reconcile
192
192
  versions after settlement. Broadcasting does not patch caches or resolve edit
193
193
  conflicts. Merge `getRequestHeaders()` into the typed client's dynamic headers
194
194
  only when the app opts into authenticated initiating-client exclusion.
195
+
196
+ Use [Broadcast coordination](./references/broadcast-coordination.md) for the
197
+ optional mutation refresh helper, custom write gates, connection admission,
198
+ and lifecycle metadata. Keep feature query mappings in feature `client/` code
199
+ and admission policy in `server/broadcast-admission.ts`, registered once on
200
+ the broadcast endpoint. The framework owns listeners and release callbacks.
@@ -0,0 +1,169 @@
1
+ # Broadcast coordination
2
+
3
+ ### Delay broadcast refreshes during saves
4
+
5
+ `createBroadcastQuerySubscription` already coordinates queries that are fetching.
6
+ Its optional `refreshGate` also coordinates pending writes. The new
7
+ `createBroadcastMutationRefreshGate` helper covers ordinary TanStack mutations;
8
+ the new `BroadcastRefreshGate` interface supports application write queues.
9
+ Existing subscriptions need no changes when this coordination is unnecessary.
10
+
11
+ For task queries, put the following in `features/tasks/client/broadcasts.ts`.
12
+ This example assumes browser-safe `taskChanges` in `features/tasks/channels.ts`
13
+ with a `workspaceId` parameter, and existing `listTasks` and `saveTask` contracts.
14
+ `listTasks` accepts a `workspaceId` query parameter. Use the returned mutation
15
+ options with `useMutation`, retaining your optimistic update/rollback callbacks:
16
+
17
+ ```ts
18
+ import type { BroadcastClient } from "@beignet/core/broadcasting/client";
19
+ import {
20
+ createBroadcastMutationRefreshGate,
21
+ createBroadcastQuerySubscription,
22
+ } from "@beignet/react-query";
23
+ import type { QueryClient } from "@tanstack/react-query";
24
+ import { rq } from "@/client";
25
+ import { taskChanges } from "@/features/tasks/channels";
26
+ import { listTasks, saveTask } from "@/features/tasks/contracts";
27
+
28
+ export function saveTaskMutationOptions(workspaceId: string) {
29
+ return rq(saveTask).mutationOptions({
30
+ mutationKey: ["tasks", workspaceId, "save"],
31
+ });
32
+ }
33
+
34
+ export function subscribeToTaskChanges(
35
+ client: BroadcastClient,
36
+ queryClient: QueryClient,
37
+ workspaceId: string,
38
+ ) {
39
+ const taskQueries = rq(listTasks).filter({ query: { workspaceId } });
40
+ return createBroadcastQuerySubscription({
41
+ client, queryClient, channel: taskChanges, params: { workspaceId },
42
+ invalidates: () => [taskQueries],
43
+ reconciles: [taskQueries],
44
+ refreshGate: createBroadcastMutationRefreshGate({
45
+ queryClient,
46
+ mutations: { mutationKey: ["tasks", workspaceId] },
47
+ }),
48
+ });
49
+ }
50
+ ```
51
+
52
+ `mutations` accepts TanStack's `mutationKey`, `exact`, and `predicate` filters.
53
+ Key matching is inclusive unless `exact: true`. Give every related write the
54
+ same key prefix, including creates and deletes that affect lists or counters.
55
+ Include workspace or resource scope when appropriate. Unrelated mutations do
56
+ not block. Omitting a key/predicate deliberately selects all mutations.
57
+
58
+ The helper always checks **pending** mutations; `status` is not configurable.
59
+ Paused pending mutations (offline or waiting for a mutation scope) also block,
60
+ as do overlapping matching mutations until all settle. A custom predicate can
61
+ exclude mutations, but excluding paused writes can refresh over unsaved edits.
62
+ The gate has no timeout that overrides your blocking policy.
63
+
64
+ ### Combine mutations with an external write lock
65
+
66
+ Put this application helper beside the feature's broadcast query mappings.
67
+ Pass `createTaskWriteRefreshGate({ queryClient, workspaceId, writeLock })` as
68
+ `refreshGate` in the subscription above. The external lock owns its state and
69
+ notifies after changes; it may inspect the query key to block only related
70
+ queries. Beignet owns listening, queuing, and cleanup:
71
+
72
+ ```ts
73
+ import {
74
+ type BroadcastRefreshGate,
75
+ createBroadcastMutationRefreshGate,
76
+ } from "@beignet/react-query";
77
+ import type { Query, QueryClient } from "@tanstack/react-query";
78
+
79
+ // Application-owned write queue/lock. It can block different queries independently.
80
+ export interface TaskWriteLock {
81
+ isBlocked(query: Query): boolean;
82
+ subscribe(onChange: () => void): () => void;
83
+ }
84
+
85
+ export function createTaskWriteRefreshGate({
86
+ queryClient, workspaceId, writeLock,
87
+ }: { queryClient: QueryClient; workspaceId: string; writeLock: TaskWriteLock }): BroadcastRefreshGate {
88
+ const mutations = createBroadcastMutationRefreshGate({
89
+ queryClient,
90
+ mutations: { mutationKey: ["tasks", workspaceId] },
91
+ });
92
+ return {
93
+ isBlocked: (query) => mutations.isBlocked(query) || writeLock.isBlocked(query),
94
+ subscribe(onChange) {
95
+ const stopMutations = mutations.subscribe(onChange);
96
+ try {
97
+ const stopLock = writeLock.subscribe(onChange);
98
+ return () => { try { stopLock(); } finally { stopMutations(); } };
99
+ } catch (error) {
100
+ stopMutations();
101
+ throw error;
102
+ }
103
+ },
104
+ };
105
+ }
106
+ ```
107
+
108
+ Both event invalidations and readiness/reconnect reconciliation queue matching
109
+ **existing queries**, deduplicated per query. A blocked query is neither
110
+ invalidated nor refetched by the subscription. The gate is subscribed before
111
+ checking state to avoid a missed wakeup and checked again immediately before
112
+ queued work begins. Opening it schedules active queries for refresh and marks
113
+ inactive queries stale. TanStack's enabled/static rules still control fetching.
114
+ If it closes again, unprocessed work stays queued. A hint during an existing
115
+ fetch remains pending for a subsequent refresh after that fetch settles.
116
+
117
+ The gate controls **broadcast-driven refreshes only**. Polling, manual refresh,
118
+ mutation callbacks that invalidate queries, already-running requests, and
119
+ optimistic cache updates remain application-owned. If all refresh sources must
120
+ respect a write lock, apply that policy to those sources too.
121
+
122
+ Unsubscribe removes transport, query-cache, and gate listeners, discards queued
123
+ work, and prevents deferred callbacks from starting refreshes. It cannot undo
124
+ an already-started request. Gate checks that throw report through `onError`,
125
+ keep the query pending, and stay blocked until a later gate notification or
126
+ broadcast hint retries the check. They do not poll or retry themselves. If
127
+ `subscribe` throws, the subscription stays blocked: fix the cause, unsubscribe,
128
+ and create a new subscription. Custom gates must release partially acquired
129
+ listeners before throwing. Unsubscribe failures are reported while the other
130
+ listeners are still released.
131
+
132
+ ### Diagnose connection changes
133
+
134
+ `onSync(info)` and `onStatusChange(status, info)` receive
135
+ `BroadcastConnectionInfo` from `@beignet/core/broadcasting/client`. Callbacks
136
+ may omit the metadata argument when they do not need it.
137
+ `createBroadcastQuerySubscription` forwards status metadata and accepts an
138
+ optional `onSync(info)` observer; its reconciliation is still scheduled even
139
+ when that observer throws. This notification describes readiness, not completion
140
+ of queued or gated query refreshes. Do not refetch from that observer to bypass
141
+ the gate accidentally.
142
+
143
+ | `info.reason` | What Beignet knows |
144
+ | --- | --- |
145
+ | `initial` | The first physical connection attempt. |
146
+ | `planned-renewal` | The server explicitly announced renewal and then ended the stream normally without further traffic. |
147
+ | `subscription-change` | Adding or removing a distinct channel restarted the multiplexed connection. |
148
+ | `interruption` | A timeout, transport/protocol failure, or retryable rejection interrupted the connection. |
149
+ | `unknown` | An unexplained EOF, explicit resume, or browser wakeup has no more precise known cause. |
150
+
151
+ Readiness reports the reason for that physical connection; another observer
152
+ joining an already-ready channel sees the same information. Reconnecting status
153
+ reports the known reason for restarting. An elapsed lifetime alone never proves
154
+ planned renewal. Servers send an explicit, connection-wide renewal control frame
155
+ before closing normally. An unexplained EOF stays `unknown`. A renewal frame
156
+ followed by a stall produces `interruption` when a watchdog fires. Further traffic
157
+ after the frame makes a later EOF `unknown`, including an incomplete frame.
158
+ Reconciliation continues after **every** renewal because events have no replay.
159
+ Planned renewal is a lifecycle change, not an `onError` failure.
160
+
161
+ Routes use the existing `broadcast` instrumentation watcher for admission,
162
+ connection, and cleanup events. Server closure details report `planned-renewal`,
163
+ `provider-disconnect`, `buffer-overflow`, `setup-failure`, or `unknown` as known
164
+ locally; the server cannot infer why a browser cancelled. An optional
165
+ `instrumentation` sink on `createBroadcastClient` uses the existing
166
+ `ProviderInstrumentationPort` to record `broadcast.connecting`, `broadcast.ready`,
167
+ and `broadcast.closed` with browser reasons. These events contain safe counts,
168
+ durations, and reasons, never headers, credentials, payloads, or channel params.
169
+ Keep custom logging equally restrained.
@@ -7,8 +7,38 @@ import type {
7
7
  BroadcastClient,
8
8
  BroadcastClientStatus,
9
9
  BroadcastClientSubscription,
10
+ BroadcastConnectionInfo,
10
11
  } from "@beignet/core/broadcasting/client";
11
- import type { Query, QueryClient, QueryFilters } from "@tanstack/react-query";
12
+ import type {
13
+ MutationFilters,
14
+ Query,
15
+ QueryClient,
16
+ QueryFilters,
17
+ } from "@tanstack/react-query";
18
+
19
+ /** Application policy for broadcast-driven refreshes only. Checks must be synchronous. */
20
+ export interface BroadcastRefreshGate {
21
+ isBlocked(query: Query): boolean;
22
+ /** Notify after policy changes. Return cleanup; do not acquire resources before throwing. */
23
+ subscribe(onChange: () => void): () => void;
24
+ }
25
+
26
+ export interface BroadcastMutationRefreshGateOptions {
27
+ queryClient: QueryClient;
28
+ /** Native mutationKey/exact/predicate matching. Only pending mutations block, including paused ones. */
29
+ mutations: Omit<MutationFilters, "status">;
30
+ }
31
+
32
+ /** Coordinate related pending mutations without application subscription bookkeeping. */
33
+ export function createBroadcastMutationRefreshGate(
34
+ options: BroadcastMutationRefreshGateOptions,
35
+ ): BroadcastRefreshGate {
36
+ return {
37
+ isBlocked: () => options.queryClient.isMutating(options.mutations) > 0,
38
+ subscribe: (onChange) =>
39
+ options.queryClient.getMutationCache().subscribe(onChange),
40
+ };
41
+ }
12
42
 
13
43
  export interface BroadcastQuerySubscriptionOptions<
14
44
  C extends ChannelDefinition,
@@ -20,8 +50,14 @@ export interface BroadcastQuerySubscriptionOptions<
20
50
  invalidates: (event: InferChannelEvent<C>) => readonly QueryFilters[];
21
51
  /** All state covered by the channel, including unread counters and filtered lists. */
22
52
  reconciles: readonly QueryFilters[];
53
+ refreshGate?: BroadcastRefreshGate;
54
+ /** Readiness notification; queued reconciliation may still be blocked by the gate. */
55
+ onSync?: (info: BroadcastConnectionInfo) => void | Promise<void>;
23
56
  onError?: (error: unknown) => void;
24
- onStatusChange?: (status: BroadcastClientStatus) => void;
57
+ onStatusChange?: (
58
+ status: BroadcastClientStatus,
59
+ info: BroadcastConnectionInfo,
60
+ ) => void;
25
61
  }
26
62
 
27
63
  /** Invalidate hints and refetch after readiness. An event during a fetch schedules one later fetch. */
@@ -32,37 +68,67 @@ export function createBroadcastQuerySubscription<C extends ChannelDefinition>(
32
68
  const pending = new Set<Query>();
33
69
  let closed = false;
34
70
  let queued = false;
71
+ const failed = new Set<Query>();
72
+ let gateSubscribed = !options.refreshGate;
73
+ function report(error: unknown) {
74
+ if (closed) return;
75
+ try {
76
+ options.onError?.(error);
77
+ } catch {
78
+ /* Reporting cannot disrupt observers. */
79
+ }
80
+ }
81
+ function blocked(query: Query): boolean {
82
+ if (!gateSubscribed || failed.has(query)) return true;
83
+ try {
84
+ if (!options.refreshGate) return false;
85
+ const result = options.refreshGate.isBlocked(query);
86
+ if (typeof result !== "boolean")
87
+ throw new TypeError(
88
+ "Broadcast refresh gate isBlocked must return a boolean",
89
+ );
90
+ return result;
91
+ } catch (error) {
92
+ failed.add(query);
93
+ report(error);
94
+ return true;
95
+ }
96
+ }
35
97
  function flush() {
36
98
  if (queued || closed) return;
37
99
  queued = true;
38
100
  queueMicrotask(() => {
39
101
  queued = false;
40
102
  if (closed) return;
41
- for (const query of pending) {
42
- if (query.state.fetchStatus !== "idle") continue;
103
+ // A snapshot prevents synchronous callbacks from consuming a new hint in this pass.
104
+ for (const query of [...pending]) {
105
+ if (closed) return;
106
+ if (query.state.fetchStatus !== "idle" || blocked(query) || closed)
107
+ continue;
43
108
  pending.delete(query);
44
109
  // A completed fetch clears invalidation, even when it began before the hint.
45
110
  query.invalidate();
46
- // Inactive queries remain stale. TanStack owns enabled/static and observer behavior.
111
+ // Cache observers may close the gate (or unsubscribe) during invalidation.
112
+ if (closed) return;
113
+ if (blocked(query) || closed) {
114
+ if (!closed) pending.add(query);
115
+ continue;
116
+ }
117
+ // Inactive queries remain stale. TanStack owns enabled/static behavior.
47
118
  void options.queryClient
48
119
  .refetchQueries(
49
- { queryKey: query.queryKey, exact: true, type: "active" },
120
+ { predicate: (candidate) => candidate === query, type: "active" },
50
121
  { cancelRefetch: false, throwOnError: true },
51
122
  )
52
- .catch((error) => {
53
- if (!closed) {
54
- try {
55
- options.onError?.(error);
56
- } catch {
57
- /* Reporting cannot disrupt query observers. */
58
- }
59
- }
60
- });
123
+ .catch(report);
61
124
  }
62
125
  });
63
126
  }
64
127
  const unsubscribeCache = cache.subscribe((event) => {
65
- if (event.type === "removed") pending.delete(event.query);
128
+ if (event.type === "removed") {
129
+ pending.delete(event.query);
130
+ failed.delete(event.query);
131
+ }
66
132
  if (
67
133
  event.type === "updated" &&
68
134
  event.query.state.fetchStatus === "idle" &&
@@ -75,23 +141,59 @@ export function createBroadcastQuerySubscription<C extends ChannelDefinition>(
75
141
  for (const filter of filters)
76
142
  for (const query of cache.findAll(filter)) {
77
143
  pending.add(query);
78
- query.invalidate();
144
+ failed.delete(query);
145
+ // Preserve immediate staleness for existing subscriptions without a gate.
146
+ if (!options.refreshGate) query.invalidate();
79
147
  }
80
148
  flush();
81
149
  }
150
+ let unsubscribeGate: (() => void) | undefined;
151
+ if (options.refreshGate) {
152
+ try {
153
+ // Subscribe before the first check. A change during subscription still schedules a check.
154
+ const cleanup = options.refreshGate.subscribe(() => {
155
+ failed.clear();
156
+ flush();
157
+ });
158
+ if (typeof cleanup !== "function")
159
+ throw new TypeError(
160
+ "Broadcast refresh gate subscribe must return a cleanup function",
161
+ );
162
+ unsubscribeGate = cleanup;
163
+ gateSubscribed = true;
164
+ } catch (error) {
165
+ report(error);
166
+ }
167
+ }
168
+ function dispose() {
169
+ unsubscribeCache();
170
+ try {
171
+ unsubscribeGate?.();
172
+ } catch (error) {
173
+ try {
174
+ options.onError?.(error);
175
+ } catch {
176
+ /* Cleanup must finish. */
177
+ }
178
+ }
179
+ pending.clear();
180
+ failed.clear();
181
+ }
82
182
  let subscription: BroadcastClientSubscription;
83
183
  try {
84
184
  subscription = options.client.subscribe(options.channel, {
85
185
  params: options.params,
86
186
  onEvent: (event) => invalidate(options.invalidates(event)),
87
- onSync: () => invalidate(options.reconciles),
187
+ onSync: (info) => {
188
+ invalidate(options.reconciles);
189
+ return options.onSync?.(info);
190
+ },
88
191
  onError: options.onError,
89
192
  onStatusChange: options.onStatusChange,
90
193
  });
91
194
  } catch (error) {
92
195
  closed = true;
93
- unsubscribeCache();
94
- pending.clear();
196
+ dispose();
95
197
  throw error;
96
198
  }
97
199
  return {
@@ -99,9 +201,11 @@ export function createBroadcastQuerySubscription<C extends ChannelDefinition>(
99
201
  unsubscribe() {
100
202
  if (closed) return;
101
203
  closed = true;
102
- subscription.unsubscribe();
103
- unsubscribeCache();
104
- pending.clear();
204
+ try {
205
+ subscription.unsubscribe();
206
+ } finally {
207
+ dispose();
208
+ }
105
209
  },
106
210
  };
107
211
  }
package/src/index.ts CHANGED
@@ -10,7 +10,10 @@ import type {
10
10
  } from "@beignet/core/client";
11
11
 
12
12
  export {
13
+ type BroadcastMutationRefreshGateOptions,
13
14
  type BroadcastQuerySubscriptionOptions,
15
+ type BroadcastRefreshGate,
16
+ createBroadcastMutationRefreshGate,
14
17
  createBroadcastQuerySubscription,
15
18
  } from "./broadcasting.js";
16
19