@beignet/react-query 0.0.54 → 0.0.56
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 +15 -0
- package/README.md +208 -36
- package/dist/broadcasting.d.ts +19 -3
- package/dist/broadcasting.d.ts.map +1 -1
- package/dist/broadcasting.js +103 -22
- package/dist/broadcasting.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/client/SKILL.md +28 -27
- package/skills/client/references/broadcast-coordination.md +169 -0
- package/src/broadcasting.ts +127 -23
- package/src/index.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @beignet/react-query
|
|
2
2
|
|
|
3
|
+
## 0.0.56
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e00c302: Use direct React Query options and declarative invalidation in generated components, with guidance for extracting shared client behavior.
|
|
8
|
+
|
|
9
|
+
## 0.0.55
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- a3085a6: Coordinate broadcast refreshes with matching pending mutations or custom write
|
|
14
|
+
gates. Add connection admission with automatic resource cleanup, and expose
|
|
15
|
+
connection/reconciliation reasons. Keep the 60-second default, require valid
|
|
16
|
+
lifetime metadata, and use explicit connection-wide renewal control frames.
|
|
17
|
+
|
|
3
18
|
## 0.0.54
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -71,53 +71,57 @@ export function Providers({ children }: { children: ReactNode }) {
|
|
|
71
71
|
}
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
### 3.
|
|
74
|
+
### 3. Use contracts in components
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
options
|
|
78
|
-
|
|
76
|
+
Import the app's shared `rq` adapter and browser-safe feature contracts. Pass
|
|
77
|
+
options directly to TanStack Query; `invalidates` selects the queries to refresh
|
|
78
|
+
after a successful mutation:
|
|
79
79
|
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
```tsx
|
|
81
|
+
"use client";
|
|
82
|
+
|
|
83
|
+
import { useMutation, useQuery } from "@tanstack/react-query";
|
|
83
84
|
import { rq } from "@/client";
|
|
84
85
|
import { createTodo, listTodos } from "@/features/todos/contracts";
|
|
85
86
|
|
|
86
|
-
export function
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
export function TodoList() {
|
|
88
|
+
const todos = useQuery(rq(listTodos).queryOptions());
|
|
89
|
+
const create = useMutation(
|
|
90
|
+
rq(createTodo).mutationOptions({
|
|
91
|
+
invalidates: () => [rq(listTodos).contractFilter()],
|
|
92
|
+
}),
|
|
93
|
+
);
|
|
89
94
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
95
|
+
if (todos.isPending) return <p>Loading todos…</p>;
|
|
96
|
+
if (todos.isError) return <p role="alert">{todos.error.message}</p>;
|
|
93
97
|
|
|
94
|
-
|
|
95
|
-
|
|
98
|
+
return (
|
|
99
|
+
<div>
|
|
100
|
+
<button
|
|
101
|
+
type="button"
|
|
102
|
+
disabled={create.isPending}
|
|
103
|
+
onClick={() => create.mutate({ body: { title: "New todo" } })}
|
|
104
|
+
>
|
|
105
|
+
Add todo
|
|
106
|
+
</button>
|
|
107
|
+
{create.isError && <p role="alert">{create.error.message}</p>}
|
|
108
|
+
<ul>
|
|
109
|
+
{todos.data.items.map((todo) => <li key={todo.id}>{todo.title}</li>)}
|
|
110
|
+
</ul>
|
|
111
|
+
</div>
|
|
112
|
+
);
|
|
96
113
|
}
|
|
97
114
|
```
|
|
98
115
|
|
|
99
|
-
|
|
100
|
-
|
|
116
|
+
Pass lifecycle callbacks inside `mutationOptions({ ... })`. Beignet awaits
|
|
117
|
+
`onSuccess`, then the selected invalidations before the mutation settles.
|
|
118
|
+
Declarative invalidation requires TanStack React Query 5.102.0 or newer in v5.
|
|
119
|
+
See [Declarative mutation invalidation](#declarative-mutation-invalidation).
|
|
101
120
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
invalidateTodos,
|
|
107
|
-
listTodosQueryOptions,
|
|
108
|
-
} from "@/features/todos/client/queries";
|
|
109
|
-
|
|
110
|
-
function TodoList() {
|
|
111
|
-
const queryClient = useQueryClient();
|
|
112
|
-
const todosQuery = useQuery(listTodosQueryOptions());
|
|
113
|
-
const createTodoMutation = useMutation({
|
|
114
|
-
...createTodoMutationOptions(),
|
|
115
|
-
onSuccess: () => invalidateTodos(queryClient),
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
return <div>{/* ... */}</div>;
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
+
Keep adapter setup in root `client/`. Extract
|
|
122
|
+
[feature client helpers](https://beignetjs.com/react-query#feature-client-helpers)
|
|
123
|
+
for shared query defaults, pagination, optimistic updates, or cache filters used
|
|
124
|
+
by mutations and broadcasts.
|
|
121
125
|
|
|
122
126
|
## Usage
|
|
123
127
|
|
|
@@ -852,6 +856,174 @@ optimistic mutation state separately so a remote refetch does not overwrite an
|
|
|
852
856
|
in-flight edit. See the [broadcasting guide](https://beignetjs.com/broadcasting)
|
|
853
857
|
for complete channel and React Query examples.
|
|
854
858
|
|
|
859
|
+
### Delay broadcast refreshes during saves
|
|
860
|
+
|
|
861
|
+
`createBroadcastQuerySubscription` already coordinates queries that are fetching.
|
|
862
|
+
Its optional `refreshGate` also coordinates pending writes. The new
|
|
863
|
+
`createBroadcastMutationRefreshGate` helper covers ordinary TanStack mutations;
|
|
864
|
+
the new `BroadcastRefreshGate` interface supports application write queues.
|
|
865
|
+
Existing subscriptions need no changes when this coordination is unnecessary.
|
|
866
|
+
|
|
867
|
+
For task queries, put the following in `features/tasks/client/broadcasts.ts`.
|
|
868
|
+
This example assumes browser-safe `taskChanges` in `features/tasks/channels.ts`
|
|
869
|
+
with a `workspaceId` parameter, and existing `listTasks` and `saveTask` contracts.
|
|
870
|
+
`listTasks` accepts a `workspaceId` query parameter. Use the returned mutation
|
|
871
|
+
options with `useMutation`, retaining your optimistic update/rollback callbacks:
|
|
872
|
+
|
|
873
|
+
```ts
|
|
874
|
+
import type { BroadcastClient } from "@beignet/core/broadcasting/client";
|
|
875
|
+
import {
|
|
876
|
+
createBroadcastMutationRefreshGate,
|
|
877
|
+
createBroadcastQuerySubscription,
|
|
878
|
+
} from "@beignet/react-query";
|
|
879
|
+
import type { QueryClient } from "@tanstack/react-query";
|
|
880
|
+
import { rq } from "@/client";
|
|
881
|
+
import { taskChanges } from "@/features/tasks/channels";
|
|
882
|
+
import { listTasks, saveTask } from "@/features/tasks/contracts";
|
|
883
|
+
|
|
884
|
+
export function saveTaskMutationOptions(workspaceId: string) {
|
|
885
|
+
return rq(saveTask).mutationOptions({
|
|
886
|
+
mutationKey: ["tasks", workspaceId, "save"],
|
|
887
|
+
});
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
export function subscribeToTaskChanges(
|
|
891
|
+
client: BroadcastClient,
|
|
892
|
+
queryClient: QueryClient,
|
|
893
|
+
workspaceId: string,
|
|
894
|
+
) {
|
|
895
|
+
const taskQueries = rq(listTasks).filter({ query: { workspaceId } });
|
|
896
|
+
return createBroadcastQuerySubscription({
|
|
897
|
+
client, queryClient, channel: taskChanges, params: { workspaceId },
|
|
898
|
+
invalidates: () => [taskQueries],
|
|
899
|
+
reconciles: [taskQueries],
|
|
900
|
+
refreshGate: createBroadcastMutationRefreshGate({
|
|
901
|
+
queryClient,
|
|
902
|
+
mutations: { mutationKey: ["tasks", workspaceId] },
|
|
903
|
+
}),
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
`mutations` accepts TanStack's `mutationKey`, `exact`, and `predicate` filters.
|
|
909
|
+
Key matching is inclusive unless `exact: true`. Give every related write the
|
|
910
|
+
same key prefix, including creates and deletes that affect lists or counters.
|
|
911
|
+
Include workspace or resource scope when appropriate. Unrelated mutations do
|
|
912
|
+
not block. Omitting a key/predicate deliberately selects all mutations.
|
|
913
|
+
|
|
914
|
+
The helper always checks **pending** mutations; `status` is not configurable.
|
|
915
|
+
Paused pending mutations (offline or waiting for a mutation scope) also block,
|
|
916
|
+
as do overlapping matching mutations until all settle. A custom predicate can
|
|
917
|
+
exclude mutations, but excluding paused writes can refresh over unsaved edits.
|
|
918
|
+
The gate has no timeout that overrides your blocking policy.
|
|
919
|
+
|
|
920
|
+
### Combine mutations with an external write lock
|
|
921
|
+
|
|
922
|
+
Put this application helper beside the feature's broadcast query mappings.
|
|
923
|
+
Pass `createTaskWriteRefreshGate({ queryClient, workspaceId, writeLock })` as
|
|
924
|
+
`refreshGate` in the subscription above. The external lock owns its state and
|
|
925
|
+
notifies after changes; it may inspect the query key to block only related
|
|
926
|
+
queries. Beignet owns listening, queuing, and cleanup:
|
|
927
|
+
|
|
928
|
+
```ts
|
|
929
|
+
import {
|
|
930
|
+
type BroadcastRefreshGate,
|
|
931
|
+
createBroadcastMutationRefreshGate,
|
|
932
|
+
} from "@beignet/react-query";
|
|
933
|
+
import type { Query, QueryClient } from "@tanstack/react-query";
|
|
934
|
+
|
|
935
|
+
// Application-owned write queue/lock. It can block different queries independently.
|
|
936
|
+
export interface TaskWriteLock {
|
|
937
|
+
isBlocked(query: Query): boolean;
|
|
938
|
+
subscribe(onChange: () => void): () => void;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
export function createTaskWriteRefreshGate({
|
|
942
|
+
queryClient, workspaceId, writeLock,
|
|
943
|
+
}: { queryClient: QueryClient; workspaceId: string; writeLock: TaskWriteLock }): BroadcastRefreshGate {
|
|
944
|
+
const mutations = createBroadcastMutationRefreshGate({
|
|
945
|
+
queryClient,
|
|
946
|
+
mutations: { mutationKey: ["tasks", workspaceId] },
|
|
947
|
+
});
|
|
948
|
+
return {
|
|
949
|
+
isBlocked: (query) => mutations.isBlocked(query) || writeLock.isBlocked(query),
|
|
950
|
+
subscribe(onChange) {
|
|
951
|
+
const stopMutations = mutations.subscribe(onChange);
|
|
952
|
+
try {
|
|
953
|
+
const stopLock = writeLock.subscribe(onChange);
|
|
954
|
+
return () => { try { stopLock(); } finally { stopMutations(); } };
|
|
955
|
+
} catch (error) {
|
|
956
|
+
stopMutations();
|
|
957
|
+
throw error;
|
|
958
|
+
}
|
|
959
|
+
},
|
|
960
|
+
};
|
|
961
|
+
}
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
Both event invalidations and readiness/reconnect reconciliation queue matching
|
|
965
|
+
**existing queries**, deduplicated per query. A blocked query is neither
|
|
966
|
+
invalidated nor refetched by the subscription. The gate is subscribed before
|
|
967
|
+
checking state to avoid a missed wakeup and checked again immediately before
|
|
968
|
+
queued work begins. Opening it schedules active queries for refresh and marks
|
|
969
|
+
inactive queries stale. TanStack's enabled/static rules still control fetching.
|
|
970
|
+
If it closes again, unprocessed work stays queued. A hint during an existing
|
|
971
|
+
fetch remains pending for a subsequent refresh after that fetch settles.
|
|
972
|
+
|
|
973
|
+
The gate controls **broadcast-driven refreshes only**. Polling, manual refresh,
|
|
974
|
+
mutation callbacks that invalidate queries, already-running requests, and
|
|
975
|
+
optimistic cache updates remain application-owned. If all refresh sources must
|
|
976
|
+
respect a write lock, apply that policy to those sources too.
|
|
977
|
+
|
|
978
|
+
Unsubscribe removes transport, query-cache, and gate listeners, discards queued
|
|
979
|
+
work, and prevents deferred callbacks from starting refreshes. It cannot undo
|
|
980
|
+
an already-started request. Gate checks that throw report through `onError`,
|
|
981
|
+
keep the query pending, and stay blocked until a later gate notification or
|
|
982
|
+
broadcast hint retries the check. They do not poll or retry themselves. If
|
|
983
|
+
`subscribe` throws, the subscription stays blocked: fix the cause, unsubscribe,
|
|
984
|
+
and create a new subscription. Custom gates must release partially acquired
|
|
985
|
+
listeners before throwing. Unsubscribe failures are reported while the other
|
|
986
|
+
listeners are still released.
|
|
987
|
+
|
|
988
|
+
### Diagnose connection changes
|
|
989
|
+
|
|
990
|
+
`onSync(info)` and `onStatusChange(status, info)` receive
|
|
991
|
+
`BroadcastConnectionInfo` from `@beignet/core/broadcasting/client`. Callbacks
|
|
992
|
+
may omit the metadata argument when they do not need it.
|
|
993
|
+
`createBroadcastQuerySubscription` forwards status metadata and accepts an
|
|
994
|
+
optional `onSync(info)` observer; its reconciliation is still scheduled even
|
|
995
|
+
when that observer throws. This notification describes readiness, not completion
|
|
996
|
+
of queued or gated query refreshes. Do not refetch from that observer to bypass
|
|
997
|
+
the gate accidentally.
|
|
998
|
+
|
|
999
|
+
| `info.reason` | What Beignet knows |
|
|
1000
|
+
| --- | --- |
|
|
1001
|
+
| `initial` | The first physical connection attempt. |
|
|
1002
|
+
| `planned-renewal` | The server explicitly announced renewal and then ended the stream normally without further traffic. |
|
|
1003
|
+
| `subscription-change` | Adding or removing a distinct channel restarted the multiplexed connection. |
|
|
1004
|
+
| `interruption` | A timeout, transport/protocol failure, or retryable rejection interrupted the connection. |
|
|
1005
|
+
| `unknown` | An unexplained EOF, explicit resume, or browser wakeup has no more precise known cause. |
|
|
1006
|
+
|
|
1007
|
+
Readiness reports the reason for that physical connection; another observer
|
|
1008
|
+
joining an already-ready channel sees the same information. Reconnecting status
|
|
1009
|
+
reports the known reason for restarting. An elapsed lifetime alone never proves
|
|
1010
|
+
planned renewal. Servers send an explicit, connection-wide renewal control frame
|
|
1011
|
+
before closing normally. An unexplained EOF stays `unknown`. A renewal frame
|
|
1012
|
+
followed by a stall produces `interruption` when a watchdog fires. Further traffic
|
|
1013
|
+
after the frame makes a later EOF `unknown`, including an incomplete frame.
|
|
1014
|
+
Reconciliation continues after **every** renewal because events have no replay.
|
|
1015
|
+
Planned renewal is a lifecycle change, not an `onError` failure.
|
|
1016
|
+
|
|
1017
|
+
Routes use the existing `broadcast` instrumentation watcher for admission,
|
|
1018
|
+
connection, and cleanup events. Server closure details report `planned-renewal`,
|
|
1019
|
+
`provider-disconnect`, `buffer-overflow`, `setup-failure`, or `unknown` as known
|
|
1020
|
+
locally; the server cannot infer why a browser cancelled. An optional
|
|
1021
|
+
`instrumentation` sink on `createBroadcastClient` uses the existing
|
|
1022
|
+
`ProviderInstrumentationPort` to record `broadcast.connecting`, `broadcast.ready`,
|
|
1023
|
+
and `broadcast.closed` with browser reasons. These events contain safe counts,
|
|
1024
|
+
durations, and reasons, never headers, credentials, payloads, or channel params.
|
|
1025
|
+
Keep custom logging equally restrained.
|
|
1026
|
+
|
|
855
1027
|
## License
|
|
856
1028
|
|
|
857
1029
|
MIT
|
package/dist/broadcasting.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/broadcasting.js
CHANGED
|
@@ -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
|
-
|
|
16
|
-
|
|
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
|
-
//
|
|
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({
|
|
24
|
-
.catch(
|
|
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
|
-
|
|
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: () =>
|
|
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
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
155
|
+
try {
|
|
156
|
+
subscription.unsubscribe();
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
dispose();
|
|
160
|
+
}
|
|
80
161
|
},
|
|
81
162
|
};
|
|
82
163
|
}
|
package/dist/broadcasting.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcasting.js","sourceRoot":"","sources":["../src/broadcasting.ts"],"names":[],"mappings":"
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
package/skills/client/SKILL.md
CHANGED
|
@@ -34,39 +34,34 @@ export function makeQueryClient() {
|
|
|
34
34
|
Reuse the app's existing helper names and client options. Do not introduce a
|
|
35
35
|
parallel Beignet client unless the app already has a multi-client convention.
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Direct Options And Shared Behavior
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
Import contracts, the root `rq` adapter, and TanStack hooks in the component.
|
|
40
|
+
Inside its body, pass options directly to the hooks:
|
|
41
41
|
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
features/todos/client.ts
|
|
42
|
+
```ts
|
|
43
|
+
const todos = useQuery(rq(listTodos).queryOptions());
|
|
44
|
+
const create = useMutation(
|
|
45
|
+
rq(createTodo).mutationOptions({
|
|
46
|
+
invalidates: () => [rq(listTodos).contractFilter()],
|
|
47
|
+
}),
|
|
48
|
+
);
|
|
50
49
|
```
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
Extract feature client modules only when they own reusable behavior: shared
|
|
52
|
+
query defaults, pagination, optimistic updates and rollback, or filters used by
|
|
53
|
+
mutations and broadcasts. Prefer `features/<feature>/client/queries.ts` for
|
|
54
|
+
extracted options. Existing apps may use `features/<feature>/client.ts`; follow
|
|
55
|
+
their style without creating both forms. Keep component callbacks inside
|
|
56
|
+
`mutationOptions({ ... })` so they compose with declarative invalidation.
|
|
54
57
|
|
|
55
58
|
```ts
|
|
56
|
-
|
|
59
|
+
// features/todos/client/queries.ts: a shared freshness default
|
|
57
60
|
import { rq } from "@/client";
|
|
58
|
-
import {
|
|
61
|
+
import { listTodos } from "@/features/todos/contracts";
|
|
59
62
|
|
|
60
63
|
export function listTodosQueryOptions() {
|
|
61
|
-
return rq(listTodos).queryOptions({
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export function createTodoMutationOptions() {
|
|
65
|
-
return rq(createTodo).mutationOptions();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export function invalidateTodos(queryClient: QueryClient) {
|
|
69
|
-
return rq(listTodos).invalidate(queryClient);
|
|
64
|
+
return rq(listTodos).queryOptions({ staleTime: 30_000 });
|
|
70
65
|
}
|
|
71
66
|
```
|
|
72
67
|
|
|
@@ -160,9 +155,9 @@ If `beignet lint` says a client component reaches a use-case module:
|
|
|
160
155
|
|
|
161
156
|
1. Move shared DTOs and validation to `features/<feature>/schemas.ts`.
|
|
162
157
|
2. Remove imports from use cases, routes, infra, providers, or `server/`.
|
|
163
|
-
3.
|
|
164
|
-
|
|
165
|
-
|
|
158
|
+
3. Import browser-safe contracts and the root `rq` adapter in the component.
|
|
159
|
+
4. Pass `rq(contract).queryOptions()` or `.mutationOptions()` to TanStack Query;
|
|
160
|
+
extract a feature client helper only for shared behavior.
|
|
166
161
|
|
|
167
162
|
Then run:
|
|
168
163
|
|
|
@@ -192,3 +187,9 @@ Preserve optimistic mutation state while a mutation is pending and reconcile
|
|
|
192
187
|
versions after settlement. Broadcasting does not patch caches or resolve edit
|
|
193
188
|
conflicts. Merge `getRequestHeaders()` into the typed client's dynamic headers
|
|
194
189
|
only when the app opts into authenticated initiating-client exclusion.
|
|
190
|
+
|
|
191
|
+
Use [Broadcast coordination](./references/broadcast-coordination.md) for the
|
|
192
|
+
optional mutation refresh helper, custom write gates, connection admission,
|
|
193
|
+
and lifecycle metadata. Keep feature query mappings in feature `client/` code
|
|
194
|
+
and admission policy in `server/broadcast-admission.ts`, registered once on
|
|
195
|
+
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.
|
package/src/broadcasting.ts
CHANGED
|
@@ -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 {
|
|
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?: (
|
|
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
|
-
|
|
42
|
-
|
|
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
|
-
//
|
|
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
|
-
{
|
|
120
|
+
{ predicate: (candidate) => candidate === query, type: "active" },
|
|
50
121
|
{ cancelRefetch: false, throwOnError: true },
|
|
51
122
|
)
|
|
52
|
-
.catch(
|
|
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")
|
|
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
|
-
|
|
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: () =>
|
|
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
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|