@beignet/react-query 0.0.52 → 0.0.53

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,13 @@
1
1
  # @beignet/react-query
2
2
 
3
+ ## 0.0.53
4
+
5
+ ### Patch Changes
6
+
7
+ - faf58ad: Clarify form adapter installation and migration, document TanStack Form UI
8
+ generator restrictions, and correct React Form reference examples.
9
+ - 4df0522: Add typed `cacheEntries` and `updateCachedQueries` helpers with partial parameter matching, and declarative, awaited mutation invalidation. Preserve native query metadata and snapshot success defaults for each executing mutation. Prevent recursive execution of composed mutation defaults. Append an `infinite` segment to generated infinite-query keys so manually seeded and hydrated infinite data stays separate from standard responses; discard persisted infinite caches from the old key format when upgrading. Reserve the `beignet` key prefix for contract data. Require TanStack React Query 5.102 or newer and align generated dependency ranges.
10
+
3
11
  ## 0.0.52
4
12
 
5
13
  ### Patch Changes
package/README.md CHANGED
@@ -323,6 +323,129 @@ const todosInfiniteQuery = rq(listTodos).infiniteQueryOptions({
323
323
  });
324
324
  ```
325
325
 
326
+ ## Typed cache access
327
+
328
+ Use `cacheEntries(queryClient, match?)` to inspect cached standard queries with
329
+ contract-derived response and parameter types:
330
+
331
+ ```typescript
332
+ const todos = rq(listTodos);
333
+ const entries = todos.cacheEntries(queryClient);
334
+
335
+ for (const { queryKey, params, data } of entries) {
336
+ // data is the raw listTodos response, or undefined before data is available.
337
+ console.log(queryKey, params, data?.items);
338
+ }
339
+ ```
340
+
341
+ `match` uses the same parameter-prefix matching as `filter(...)`. Path, query,
342
+ body, and header objects accept a subset of their top-level fields. For a
343
+ contract with both `workspaceId` and `id` path parameters, pass
344
+ `{ path: { workspaceId } }` to match every ID in that workspace. Actual query
345
+ and mutation requests still require complete parameters.
346
+
347
+ Returned parameters describe normalized cache identity, not complete request
348
+ arguments: nullish path/query fields are omitted, bodies
349
+ use their JSON representation, and headers contain only lowercased names
350
+ explicitly included through `keyHeaders`. Parameter objects are copied so
351
+ editing them cannot change a query key.
352
+
353
+ Update matching existing entries with `updateCachedQueries`:
354
+
355
+ ```typescript
356
+ todos.updateCachedQueries(queryClient, {
357
+ update: ({ data }) => {
358
+ if (!data) return undefined;
359
+ return {
360
+ ...data,
361
+ items: data.items.map((todo) =>
362
+ todo.id === updatedTodo.id ? { ...todo, ...updatedTodo } : todo,
363
+ ),
364
+ };
365
+ },
366
+ });
367
+ ```
368
+
369
+ The updater receives `{ queryKey, params, data }` for each entry. It runs
370
+ synchronously against current data, must update immutably, and leaves an entry
371
+ alone when it returns `undefined`. The helper does not create missing entries.
372
+ Applications own list membership, sorting, pagination, optimistic rollback,
373
+ and coordination with in-flight requests.
374
+
375
+ Both helpers recognize standard queries using the contract's generated keys,
376
+ including entries seeded with `setQueryData(helper.key(...), data)`. Store only
377
+ the contract's raw response under these keys. Data is read before an observer's
378
+ `select` transformation. Infinite queries and custom keys are excluded.
379
+
380
+ Standard query keys keep their existing format. Generated infinite-query keys
381
+ append an `"infinite"` segment, so they remain distinct when manually seeded or
382
+ dehydrated and hydrated. Use the `queryKey` returned by `infiniteQueryOptions`
383
+ for direct reads, writes, and exact matching of infinite data. Namespace,
384
+ contract, and parameter-prefix filters still match both query types.
385
+
386
+ When upgrading, discard persisted infinite-query caches created with the old
387
+ key format. The `"beignet"` prefix is reserved: passing a custom `key` with that
388
+ prefix throws. Omit `key` to use a generated key, and use ordinary TanStack
389
+ cache APIs for custom keys and infinite-query data.
390
+
391
+ Beignet does not add query metadata. Global defaults, query-key defaults, and
392
+ explicit `meta` options retain TanStack's normal precedence.
393
+
394
+ ## Declarative mutation invalidation
395
+
396
+ Pass `invalidates` to `mutationOptions` to select affected queries from the
397
+ successful response and mutation variables:
398
+
399
+ ```typescript
400
+ const mutation = useMutation(
401
+ rq(updateTodo).mutationOptions({
402
+ invalidates: (_todo, variables) => [
403
+ rq(getTodo).filter({ path: variables.path }),
404
+ rq(listTodos).contractFilter(),
405
+ ],
406
+ onSuccess: (todo) => {
407
+ // Optional application work runs before invalidation.
408
+ console.log("Saved", todo.id);
409
+ },
410
+ }),
411
+ );
412
+ ```
413
+
414
+ The callback returns an array of ordinary TanStack invalidation filters and may
415
+ be asynchronous. An empty array requests no invalidation. Put shared filter
416
+ selection in a feature client function when mutations and realtime events
417
+ should refresh the same queries.
418
+
419
+ Beignet uses the executing mutation's `QueryClient`, waits for its configured
420
+ `onSuccess`, then attempts and awaits every requested invalidation before
421
+ `onSettled`. Client-wide and mutation-key success defaults are honored unless
422
+ overridden in `mutationOptions`. Success defaults are captured when the
423
+ generated mutation function first starts, and retained across retries; changes
424
+ to defaults while that request is pending apply to subsequent invocations.
425
+
426
+ Generated options can be composed and registered with `setMutationDefaults`.
427
+ When composition retains an earlier success wrapper, each wrapper runs its
428
+ invalidation once per mutation invocation, including when defaults refer back
429
+ to the composed options.
430
+
431
+ Default TanStack behavior marks matching queries stale and refetches active
432
+ eligible queries. Failed requests do not run `invalidates`.
433
+
434
+ Invalidation still runs when the configured `onSuccess` throws after a
435
+ successful request. Callback or invalidation failures follow TanStack's
436
+ post-success error handling and do not retry the successful HTTP write;
437
+ multiple failures are reported as an `AggregateError`. Normal TanStack refetch
438
+ error behavior remains in effect.
439
+
440
+ Pass lifecycle callbacks **inside** `mutationOptions({ ... })`. Spreading the
441
+ returned options and replacing `onSuccess` replaces the invalidation wrapper.
442
+ Callbacks passed to `mutate(variables, { onSuccess })` keep TanStack's normal
443
+ per-call behavior and run after the configured success handling.
444
+
445
+ These helpers require TanStack React Query **5.102.0 or newer in the v5 line**.
446
+ The executing client comes from TanStack's mutation callback context. They do
447
+ not add write locks or defer polling and realtime refreshes during mutations.
448
+
326
449
  ## API reference
327
450
 
328
451
  ### `createReactQuery(client, options?)`
@@ -704,7 +827,8 @@ Hook wrappers have been removed—use the options-first API for all queries and
704
827
  - [`@beignet/core/contracts`](https://beignetjs.com/contracts) - Core contract definitions
705
828
  - [`@beignet/core/client`](https://beignetjs.com/client) - HTTP client
706
829
  - [`@beignet/nuqs`](https://beignetjs.com/nuqs) - URL query state integration
707
- - [`@beignet/react-hook-form`](https://beignetjs.com/react-hook-form) - Form integration
830
+ - [`@beignet/react-hook-form`](https://beignetjs.com/react-hook-form) - React Hook Form integration
831
+ - [`@beignet/react-form`](https://beignetjs.com/react-form) - TanStack Form integration
708
832
 
709
833
  ## License
710
834
 
@@ -0,0 +1,34 @@
1
+ import type { InferBody, InferPathParams, InferQuery, InferSuccessResponse } from "@beignet/core/client";
2
+ import type { HttpContractConfig } from "@beignet/core/contracts";
3
+ import { type Query, type QueryKey } from "@tanstack/react-query";
4
+ import type { ContractQueryKeyParams } from "./index.js";
5
+ type JsonCacheValue<T> = T extends {
6
+ toJSON: (...args: never[]) => infer Value;
7
+ } ? JsonCacheValue<Value> : T extends ((...args: never[]) => unknown) | symbol | bigint ? unknown : T extends readonly unknown[] ? {
8
+ [K in keyof T]: JsonCacheValue<T[K]> | (undefined extends T[K] ? null : never);
9
+ } : T extends object ? {
10
+ [K in keyof T as K extends string ? K : never]: JsonCacheValue<T[K]>;
11
+ } : T;
12
+ /** Normalized cache identity, not a complete set of arguments for a request. */
13
+ export type ContractCacheParams<TContract extends HttpContractConfig> = {
14
+ readonly path?: JsonCacheValue<Partial<NonNullable<InferPathParams<TContract>>>>;
15
+ readonly query?: JsonCacheValue<Partial<NonNullable<InferQuery<TContract>>>>;
16
+ readonly body?: JsonCacheValue<InferBody<TContract>>;
17
+ /** Only explicitly keyed headers, with lowercase names. */
18
+ readonly headers?: Readonly<Record<string, unknown>>;
19
+ };
20
+ /** One standard query using Beignet's generated contract key. */
21
+ export type ContractCacheEntry<TContract extends HttpContractConfig> = {
22
+ readonly queryKey: QueryKey;
23
+ readonly params: ContractCacheParams<TContract>;
24
+ /** The raw contract response, before any observer-level select. */
25
+ readonly data: InferSuccessResponse<TContract> | undefined;
26
+ };
27
+ /** Update existing entries immutably. Returning undefined leaves an entry alone. */
28
+ export type UpdateCachedQueriesOptions<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = {
29
+ match?: ContractQueryKeyParams<TContract, TProvidedHeaders>;
30
+ update(entry: ContractCacheEntry<TContract>): InferSuccessResponse<TContract> | undefined;
31
+ };
32
+ export declare function readCacheParams<TContract extends HttpContractConfig>(query: Query, contractKey: QueryKey): ContractCacheParams<TContract> | undefined;
33
+ export {};
34
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAW,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,KAAK,CAAA;CAAE,GAC5E,cAAc,CAAC,KAAK,CAAC,GACrB,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GACzD,OAAO,GACP,CAAC,SAAS,SAAS,OAAO,EAAE,GAC1B;KACG,CAAC,IAAI,MAAM,CAAC,GACT,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;CAC5C,GACD,CAAC,SAAS,MAAM,GACd;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,cAAc,CAC5D,CAAC,CAAC,CAAC,CAAC,CACL;CACF,GACD,CAAC,CAAC;AAEZ,gFAAgF;AAChF,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,kBAAkB,IAAI;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAC5B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CACjD,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,kBAAkB,IAAI;IACrE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAChD,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,0BAA0B,CACpC,SAAS,SAAS,kBAAkB,EACpC,gBAAgB,SAAS,MAAM,GAAG,KAAK,IACrC;IACF,KAAK,CAAC,EAAE,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC5D,MAAM,CACJ,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,GACnC,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAChD,CAAC;AAMF,wBAAgB,eAAe,CAAC,SAAS,SAAS,kBAAkB,EAClE,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,QAAQ,GACpB,mBAAmB,CAAC,SAAS,CAAC,GAAG,SAAS,CA4B5C"}
package/dist/cache.js ADDED
@@ -0,0 +1,27 @@
1
+ import { hashKey } from "@tanstack/react-query";
2
+ function isRecord(value) {
3
+ return value !== null && typeof value === "object" && !Array.isArray(value);
4
+ }
5
+ export function readCacheParams(query, contractKey) {
6
+ const { queryKey } = query;
7
+ // Generated infinite keys have an extra suffix, even before TanStack has
8
+ // registered their options (for example, when seeded with setQueryData).
9
+ if (query.queryType === "infinite" ||
10
+ "initialPageParam" in query.options ||
11
+ (queryKey.length !== 4 && queryKey.length !== 5) ||
12
+ hashKey(queryKey.slice(0, 4)) !== hashKey(contractKey))
13
+ return undefined;
14
+ const params = queryKey[4] ?? {};
15
+ if (!isRecord(params) ||
16
+ Object.keys(params).some((key) => !["path", "query", "body", "headers"].includes(key)))
17
+ return undefined;
18
+ // Return the same JSON representation before and after hydration, and do
19
+ // not hand callers a mutable reference to parameters inside the cache key.
20
+ try {
21
+ return JSON.parse(JSON.stringify(params));
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAA6B,MAAM,uBAAuB,CAAC;AAmD3E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,WAAqB;IAErB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,yEAAyE;IACzE,yEAAyE;IACzE,IACE,KAAK,CAAC,SAAS,KAAK,UAAU;QAC9B,kBAAkB,IAAI,KAAK,CAAC,OAAO;QACnC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC;QAEtD,OAAO,SAAS,CAAC;IAEnB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7D;QAED,OAAO,SAAS,CAAC;IAEnB,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAmC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { Client, Endpoint, EndpointCallArgs, InferBody, InferEndpointContractError, InferPathParams, InferQuery, InferSuccessResponse } from "@beignet/core/client";
2
2
  import { type ContractLike, type HttpContractConfig, type ResolveContract } from "@beignet/core/contracts";
3
3
  import type { InfiniteData, InvalidateQueryFilters, QueryClient, QueryFunction, QueryKey, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
4
+ import { type ContractCacheEntry, type UpdateCachedQueriesOptions } from "./cache.js";
5
+ export type { ContractCacheEntry, ContractCacheParams, UpdateCachedQueriesOptions, } from "./cache.js";
4
6
  type EndpointQueryArgs<TContract extends HttpContractConfig, TProvidedHeaders extends string> = Omit<EndpointCallArgs<TContract, TProvidedHeaders>, "rawBody" | "signal" | "idempotencyKey">;
5
7
  type EndpointArgValue<TArgs, TKey extends "path" | "query" | "body" | "headers"> = TKey extends keyof TArgs ? TArgs[TKey] : undefined;
6
8
  type IsRequiredValue<T> = undefined extends T ? false : true;
@@ -28,11 +30,14 @@ export type ContractUseQueryOptions<TContract extends HttpContractConfig, TProvi
28
30
  key?: readonly unknown[];
29
31
  } & ContractQueryOptionsBase<TContract, TData>;
30
32
  type ContractQueryOptionsCallArgs<TContract extends HttpContractConfig, TProvidedHeaders extends string, TData = InferSuccessResponse<TContract>> = RequiresQueryOptionsArgs<TContract, TProvidedHeaders> extends true ? [args: ContractUseQueryOptions<TContract, TProvidedHeaders, TData>] : [args?: ContractUseQueryOptions<TContract, TProvidedHeaders, TData>];
33
+ type PartialKeyValue<T> = T extends readonly unknown[] | {
34
+ toJSON: (...args: never[]) => unknown;
35
+ } ? T : T extends object ? Partial<T> : T;
31
36
  export type ContractQueryKeyParams<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = {
32
- path?: EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "path">;
33
- query?: EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "query">;
34
- body?: EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "body">;
35
- headers?: EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "headers">;
37
+ path?: PartialKeyValue<EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "path">>;
38
+ query?: PartialKeyValue<EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "query">>;
39
+ body?: PartialKeyValue<EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "body">>;
40
+ headers?: PartialKeyValue<EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "headers">>;
36
41
  };
37
42
  /**
38
43
  * Options accepted by `ReactQueryContractHelper.mutationOptions(...)`.
@@ -40,7 +45,13 @@ export type ContractQueryKeyParams<TContract extends HttpContractConfig, TProvid
40
45
  * TanStack `mutationFn` is generated from the contract endpoint, so callers pass
41
46
  * the normal TanStack mutation lifecycle options.
42
47
  */
43
- export type ContractUseMutationOptions<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = Omit<UseMutationOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, EndpointCallArgs<TContract, TProvidedHeaders>, unknown>, "mutationFn">;
48
+ export type ContractUseMutationOptions<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = Omit<UseMutationOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, EndpointCallArgs<TContract, TProvidedHeaders>, unknown>, "mutationFn"> & {
49
+ /**
50
+ * Queries to invalidate after a successful mutation and its onSuccess callback.
51
+ * Uses the executing mutation's QueryClient and awaits all invalidations.
52
+ */
53
+ invalidates?: (data: InferSuccessResponse<TContract>, variables: EndpointCallArgs<TContract, TProvidedHeaders>) => readonly InvalidateQueryFilters<QueryKey>[] | Promise<readonly InvalidateQueryFilters<QueryKey>[]>;
54
+ };
44
55
  /**
45
56
  * Body input for infinite queries.
46
57
  *
@@ -224,6 +235,16 @@ export declare class ReactQueryContractHelper<TContract extends HttpContractConf
224
235
  * path/query/body params to target a single call or parameter prefix.
225
236
  */
226
237
  invalidate(queryClient: QueryClient, params?: ContractQueryKeyParams<TContract, TProvidedHeaders>, options?: ContractQueryFilterOptions): Promise<void>;
238
+ /**
239
+ * Inspect matching standard queries using this contract's generated keys.
240
+ * Skips infinite queries and custom keys.
241
+ */
242
+ cacheEntries(queryClient: QueryClient, match?: ContractQueryKeyParams<TContract, TProvidedHeaders>): ContractCacheEntry<TContract>[];
243
+ /**
244
+ * Update matching existing standard queries. Does not create entries or
245
+ * coordinate optimistic writes; updaters must return immutable data.
246
+ */
247
+ updateCachedQueries(queryClient: QueryClient, options: UpdateCachedQueriesOptions<TContract, TProvidedHeaders>): void;
227
248
  /**
228
249
  * Create query options for TanStack Query.
229
250
  *
@@ -261,6 +282,9 @@ export declare class ReactQueryContractHelper<TContract extends HttpContractConf
261
282
  * The observed data defaults to `InfiniteData` of the contract response, so
262
283
  * `useInfiniteQuery(...).data.pages` is typed per page. Pass `select` to
263
284
  * narrow the observed data type.
285
+ *
286
+ * Generated keys append "infinite" to the standard key. Use the returned
287
+ * queryKey for direct cache access; parameter-prefix filters match both.
264
288
  */
265
289
  infiniteQueryOptions<TPageParam = unknown, TData = InfiniteData<InferSuccessResponse<TContract>, TPageParam>>(args: ContractInfiniteQueryOptions<TContract, TPageParam, TProvidedHeaders, TData>): ContractInfiniteQueryOptionsResult<TContract, TPageParam, TData>;
266
290
  /**
@@ -319,5 +343,4 @@ export declare function cursorPagination(): {
319
343
  * persisted caches never store credentials.
320
344
  */
321
345
  export declare function createReactQuery<TProvidedHeaders extends string = never>(client: Client<TProvidedHeaders>, options?: CreateReactQueryOptions): <TContractLike extends ContractLike>(contract: TContractLike) => ReactQueryContractHelper<ResolveContract<TContractLike>, TProvidedHeaders>;
322
- export {};
323
346
  //# sourceMappingURL=index.d.ts.map
@@ -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,5 @@
1
1
  import { resolveContract, } from "@beignet/core/contracts";
2
+ import { readCacheParams, } from "./cache.js";
2
3
  function mergeParamObjects(base, patch) {
3
4
  if (base == null)
4
5
  return patch;
@@ -37,6 +38,11 @@ function normalizeBodyKeyValue(value) {
37
38
  }
38
39
  const BEIGNET_QUERY_KEY_SCOPE = "beignet";
39
40
  const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
41
+ function assertCustomQueryKey(key) {
42
+ if (key?.[0] === BEIGNET_QUERY_KEY_SCOPE) {
43
+ throw new Error('Custom query keys must not use the reserved "beignet" prefix. Omit key to use the contract-generated key.');
44
+ }
45
+ }
40
46
  /**
41
47
  * Generated idempotency keys keyed by mutation variables object identity.
42
48
  *
@@ -46,6 +52,9 @@ const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
46
52
  * object or an explicit `idempotencyKey` for a distinct logical command.
47
53
  */
48
54
  const idempotencyKeyForVariables = new WeakMap();
55
+ // The invocation context survives retries and option updates during React
56
+ // renders, and stays distinct even when concurrent mutations reuse variables.
57
+ const successDefaults = new WeakMap();
49
58
  /**
50
59
  * Generate an idempotency key that works in non-secure browser contexts.
51
60
  * `crypto.randomUUID` is undefined on plain `http://` hosts other than
@@ -228,6 +237,49 @@ export class ReactQueryContractHelper {
228
237
  invalidate(queryClient, params, options) {
229
238
  return queryClient.invalidateQueries(this.filter(params, options));
230
239
  }
240
+ /**
241
+ * Inspect matching standard queries using this contract's generated keys.
242
+ * Skips infinite queries and custom keys.
243
+ */
244
+ cacheEntries(queryClient, match) {
245
+ return queryClient
246
+ .getQueryCache()
247
+ .findAll(this.filter(match))
248
+ .flatMap((query) => {
249
+ const params = readCacheParams(query, this.contractKey());
250
+ return params === undefined
251
+ ? []
252
+ : [
253
+ {
254
+ queryKey: query.queryKey,
255
+ params,
256
+ data: query.state.data,
257
+ },
258
+ ];
259
+ });
260
+ }
261
+ /**
262
+ * Update matching existing standard queries. Does not create entries or
263
+ * coordinate optimistic writes; updaters must return immutable data.
264
+ */
265
+ updateCachedQueries(queryClient, options) {
266
+ const cache = queryClient.getQueryCache();
267
+ for (const query of cache.findAll(this.filter(options.match))) {
268
+ if (cache.get(query.queryHash) !== query)
269
+ continue;
270
+ const params = readCacheParams(query, this.contractKey());
271
+ if (params === undefined)
272
+ continue;
273
+ const data = options.update({
274
+ queryKey: query.queryKey,
275
+ params,
276
+ data: query.state.data,
277
+ });
278
+ if (data !== undefined && cache.get(query.queryHash) === query) {
279
+ query.setData(data, { manual: true });
280
+ }
281
+ }
282
+ }
231
283
  /**
232
284
  * Create query options for TanStack Query.
233
285
  *
@@ -240,6 +292,7 @@ export class ReactQueryContractHelper {
240
292
  queryOptions(...callArgs) {
241
293
  const args = (callArgs[0] ?? {});
242
294
  const { path, query, body, headers, key: customKey, ...rest } = args;
295
+ assertCustomQueryKey(customKey);
243
296
  const queryKey = (customKey ||
244
297
  this.key({ path, query, body, headers }));
245
298
  const queryFn = async (context) => {
@@ -273,7 +326,11 @@ export class ReactQueryContractHelper {
273
326
  */
274
327
  mutationOptions(args = {}) {
275
328
  const hasIdempotencyMetadata = Boolean(this.contract.metadata?.idempotency);
276
- const mutationFn = async (vars) => {
329
+ const mutationFn = async (vars, context) => {
330
+ if (context && !successDefaults.has(context)) {
331
+ const { onSuccess } = context.client.defaultMutationOptions({ mutationKey: context.mutationKey });
332
+ successDefaults.set(context, onSuccess);
333
+ }
277
334
  let idempotencyKey = vars?.idempotencyKey;
278
335
  if (!idempotencyKey &&
279
336
  hasIdempotencyMetadata &&
@@ -291,10 +348,43 @@ export class ReactQueryContractHelper {
291
348
  idempotencyKey,
292
349
  });
293
350
  };
294
- return {
295
- ...args,
296
- mutationFn,
351
+ const { invalidates, ...rest } = args;
352
+ if (!invalidates)
353
+ return { ...rest, mutationFn };
354
+ // Composed defaults can point back to an earlier wrapper. Each wrapper
355
+ // handles an invocation once, even when reached through that cycle.
356
+ const handledInvocations = new WeakSet();
357
+ const onSuccess = async (data, variables, onMutateResult, context) => {
358
+ if (handledInvocations.has(context))
359
+ return;
360
+ handledInvocations.add(context);
361
+ const errors = [];
362
+ try {
363
+ const callback = Object.hasOwn(rest, "onSuccess")
364
+ ? rest.onSuccess
365
+ : successDefaults.get(context);
366
+ await callback?.(data, variables, onMutateResult, context);
367
+ }
368
+ catch (error) {
369
+ errors.push(error);
370
+ }
371
+ try {
372
+ const filters = await invalidates(data, variables);
373
+ const results = await Promise.allSettled(filters.map((filter) => Promise.resolve().then(() => context.client.invalidateQueries(filter))));
374
+ for (const result of results) {
375
+ if (result.status === "rejected")
376
+ errors.push(result.reason);
377
+ }
378
+ }
379
+ catch (error) {
380
+ errors.push(error);
381
+ }
382
+ if (errors.length === 1)
383
+ throw errors[0];
384
+ if (errors.length > 1)
385
+ throw new AggregateError(errors, `Post-success handling failed for ${this.name}.`);
297
386
  };
387
+ return { ...rest, mutationFn, onSuccess };
298
388
  }
299
389
  /**
300
390
  * Create infinite query options for TanStack Query.
@@ -308,8 +398,12 @@ export class ReactQueryContractHelper {
308
398
  * The observed data defaults to `InfiniteData` of the contract response, so
309
399
  * `useInfiniteQuery(...).data.pages` is typed per page. Pass `select` to
310
400
  * narrow the observed data type.
401
+ *
402
+ * Generated keys append "infinite" to the standard key. Use the returned
403
+ * queryKey for direct cache access; parameter-prefix filters match both.
311
404
  */
312
405
  infiniteQueryOptions(args) {
406
+ assertCustomQueryKey(args.key);
313
407
  let queryKey;
314
408
  let rest;
315
409
  let resolveParams;
@@ -324,7 +418,10 @@ export class ReactQueryContractHelper {
324
418
  }
325
419
  else {
326
420
  const { path, query, body, headers, page, key, ...other } = args;
327
- queryKey = (key || this.key({ path, query, body, headers }));
421
+ queryKey = key || [
422
+ ...this.key({ path, query, body, headers }),
423
+ "infinite",
424
+ ];
328
425
  rest = other;
329
426
  resolveParams = (context) => {
330
427
  const pageParams = page?.(context);
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.52",
3
+ "version": "0.0.53",
4
4
  "type": "module",
5
5
  "description": "TanStack Query integration for Beignet",
6
6
  "main": "./dist/index.js",
@@ -57,12 +57,12 @@
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@beignet/core": ">=0.0.3 <1.0.0",
60
- "@tanstack/react-query": "^5.0.0",
60
+ "@tanstack/react-query": "^5.102.0",
61
61
  "react": "^18.0.0 || ^19.0.0"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@beignet/core": "*",
65
- "@tanstack/react-query": "^5.0.0",
65
+ "@tanstack/react-query": "^5.102.0",
66
66
  "@testing-library/dom": "^9.3.4",
67
67
  "@testing-library/react": "^14.3.1",
68
68
  "@types/bun": "^1.4.0",
@@ -118,9 +118,34 @@ Call server behavior through Beignet contracts and typed clients.
118
118
  filters.
119
119
  - Generated keys omit nullish path, query, and opted-in header entries, but
120
120
  preserve JSON body `null` values and empty objects. Reuse generated keys so
121
- distinct request bodies do not share cache entries.
121
+ distinct request bodies do not share cache entries. Infinite-query keys
122
+ append an `"infinite"` segment; use `infiniteQueryOptions(...).queryKey` for
123
+ direct infinite-cache reads, writes, and exact matching. Prefix filters
124
+ still match both query types. Discard persisted infinite caches from the old
125
+ key format when upgrading.
122
126
  - Use `rq(contract).invalidate(queryClient, params?, options?)` or the app's
123
127
  existing key helper after successful mutations.
128
+ - Use `rq(contract).cacheEntries(queryClient, match?)` for typed standard-query
129
+ data and normalized key parameters, and `updateCachedQueries(queryClient,
130
+ { match, update })` for immutable updates of existing entries. Returning
131
+ `undefined` skips an update. Match objects accept partial path, query, body,
132
+ and header fields. These helpers recognize generated keys, including entries
133
+ seeded with `setQueryData(helper.key(...), data)`; keep the data in the raw
134
+ contract response shape. Infinite queries and custom keys are excluded.
135
+ Custom keys must not use the reserved `"beignet"` prefix. Native query metadata
136
+ defaults remain intact. Keep sorting, list membership, optimistic rollback,
137
+ and request coordination app-owned.
138
+ - Use `mutationOptions({ invalidates: (data, variables) => filters })` for
139
+ declarative success invalidation. Filters may be selected asynchronously.
140
+ Beignet runs and awaits configured `onSuccess`, then all invalidations on
141
+ the executing QueryClient, including when `onSuccess` throws. Success defaults
142
+ are captured when the generated mutation function first starts and remain
143
+ stable across retries and changes to defaults during the request. It does not
144
+ retry a successful write when post-success handling fails. Pass callbacks
145
+ inside `mutationOptions`; replacing the returned `onSuccess` bypasses this
146
+ handling. Composed options can be registered with `setMutationDefaults`;
147
+ each retained success wrapper invalidates once per mutation invocation.
148
+ The integration requires TanStack React Query 5.102+ in v5.
124
149
  - If the app configures `createReactQuery(apiClient, { keyHeaders })`, preserve
125
150
  that when adding helpers so tenant or header-scoped caches stay distinct.
126
151
  - Contracts with idempotency metadata get one generated idempotency key per
package/src/cache.ts ADDED
@@ -0,0 +1,94 @@
1
+ import type {
2
+ InferBody,
3
+ InferPathParams,
4
+ InferQuery,
5
+ InferSuccessResponse,
6
+ } from "@beignet/core/client";
7
+ import type { HttpContractConfig } from "@beignet/core/contracts";
8
+ import { hashKey, type Query, type QueryKey } from "@tanstack/react-query";
9
+ import type { ContractQueryKeyParams } from "./index.js";
10
+
11
+ type JsonCacheValue<T> = T extends { toJSON: (...args: never[]) => infer Value }
12
+ ? JsonCacheValue<Value>
13
+ : T extends ((...args: never[]) => unknown) | symbol | bigint
14
+ ? unknown
15
+ : T extends readonly unknown[]
16
+ ? {
17
+ [K in keyof T]:
18
+ | JsonCacheValue<T[K]>
19
+ | (undefined extends T[K] ? null : never);
20
+ }
21
+ : T extends object
22
+ ? {
23
+ [K in keyof T as K extends string ? K : never]: JsonCacheValue<
24
+ T[K]
25
+ >;
26
+ }
27
+ : T;
28
+
29
+ /** Normalized cache identity, not a complete set of arguments for a request. */
30
+ export type ContractCacheParams<TContract extends HttpContractConfig> = {
31
+ readonly path?: JsonCacheValue<
32
+ Partial<NonNullable<InferPathParams<TContract>>>
33
+ >;
34
+ readonly query?: JsonCacheValue<Partial<NonNullable<InferQuery<TContract>>>>;
35
+ readonly body?: JsonCacheValue<InferBody<TContract>>;
36
+ /** Only explicitly keyed headers, with lowercase names. */
37
+ readonly headers?: Readonly<Record<string, unknown>>;
38
+ };
39
+
40
+ /** One standard query using Beignet's generated contract key. */
41
+ export type ContractCacheEntry<TContract extends HttpContractConfig> = {
42
+ readonly queryKey: QueryKey;
43
+ readonly params: ContractCacheParams<TContract>;
44
+ /** The raw contract response, before any observer-level select. */
45
+ readonly data: InferSuccessResponse<TContract> | undefined;
46
+ };
47
+
48
+ /** Update existing entries immutably. Returning undefined leaves an entry alone. */
49
+ export type UpdateCachedQueriesOptions<
50
+ TContract extends HttpContractConfig,
51
+ TProvidedHeaders extends string = never,
52
+ > = {
53
+ match?: ContractQueryKeyParams<TContract, TProvidedHeaders>;
54
+ update(
55
+ entry: ContractCacheEntry<TContract>,
56
+ ): InferSuccessResponse<TContract> | undefined;
57
+ };
58
+
59
+ function isRecord(value: unknown): value is Record<string, unknown> {
60
+ return value !== null && typeof value === "object" && !Array.isArray(value);
61
+ }
62
+
63
+ export function readCacheParams<TContract extends HttpContractConfig>(
64
+ query: Query,
65
+ contractKey: QueryKey,
66
+ ): ContractCacheParams<TContract> | undefined {
67
+ const { queryKey } = query;
68
+ // Generated infinite keys have an extra suffix, even before TanStack has
69
+ // registered their options (for example, when seeded with setQueryData).
70
+ if (
71
+ query.queryType === "infinite" ||
72
+ "initialPageParam" in query.options ||
73
+ (queryKey.length !== 4 && queryKey.length !== 5) ||
74
+ hashKey(queryKey.slice(0, 4)) !== hashKey(contractKey)
75
+ )
76
+ return undefined;
77
+
78
+ const params = queryKey[4] ?? {};
79
+ if (
80
+ !isRecord(params) ||
81
+ Object.keys(params).some(
82
+ (key) => !["path", "query", "body", "headers"].includes(key),
83
+ )
84
+ )
85
+ return undefined;
86
+
87
+ // Return the same JSON representation before and after hydration, and do
88
+ // not hand callers a mutable reference to parameters inside the cache key.
89
+ try {
90
+ return JSON.parse(JSON.stringify(params)) as ContractCacheParams<TContract>;
91
+ } catch {
92
+ return undefined;
93
+ }
94
+ }
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  import type {
19
19
  InfiniteData,
20
20
  InvalidateQueryFilters,
21
+ MutationFunctionContext,
21
22
  QueryClient,
22
23
  QueryFunction,
23
24
  QueryKey,
@@ -25,6 +26,17 @@ import type {
25
26
  UseMutationOptions,
26
27
  UseQueryOptions,
27
28
  } from "@tanstack/react-query";
29
+ import {
30
+ type ContractCacheEntry,
31
+ readCacheParams,
32
+ type UpdateCachedQueriesOptions,
33
+ } from "./cache.js";
34
+
35
+ export type {
36
+ ContractCacheEntry,
37
+ ContractCacheParams,
38
+ UpdateCachedQueriesOptions,
39
+ } from "./cache.js";
28
40
 
29
41
  type EndpointQueryArgs<
30
42
  TContract extends HttpContractConfig,
@@ -112,25 +124,29 @@ type ContractQueryOptionsCallArgs<
112
124
  ? [args: ContractUseQueryOptions<TContract, TProvidedHeaders, TData>]
113
125
  : [args?: ContractUseQueryOptions<TContract, TProvidedHeaders, TData>];
114
126
 
127
+ type PartialKeyValue<T> = T extends
128
+ | readonly unknown[]
129
+ | { toJSON: (...args: never[]) => unknown }
130
+ ? T
131
+ : T extends object
132
+ ? Partial<T>
133
+ : T;
134
+
115
135
  export type ContractQueryKeyParams<
116
136
  TContract extends HttpContractConfig,
117
137
  TProvidedHeaders extends string = never,
118
138
  > = {
119
- path?: EndpointArgValue<
120
- EndpointQueryArgs<TContract, TProvidedHeaders>,
121
- "path"
139
+ path?: PartialKeyValue<
140
+ EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "path">
122
141
  >;
123
- query?: EndpointArgValue<
124
- EndpointQueryArgs<TContract, TProvidedHeaders>,
125
- "query"
142
+ query?: PartialKeyValue<
143
+ EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "query">
126
144
  >;
127
- body?: EndpointArgValue<
128
- EndpointQueryArgs<TContract, TProvidedHeaders>,
129
- "body"
145
+ body?: PartialKeyValue<
146
+ EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "body">
130
147
  >;
131
- headers?: EndpointArgValue<
132
- EndpointQueryArgs<TContract, TProvidedHeaders>,
133
- "headers"
148
+ headers?: PartialKeyValue<
149
+ EndpointArgValue<EndpointQueryArgs<TContract, TProvidedHeaders>, "headers">
134
150
  >;
135
151
  };
136
152
 
@@ -151,7 +167,18 @@ export type ContractUseMutationOptions<
151
167
  unknown
152
168
  >,
153
169
  "mutationFn"
154
- >;
170
+ > & {
171
+ /**
172
+ * Queries to invalidate after a successful mutation and its onSuccess callback.
173
+ * Uses the executing mutation's QueryClient and awaits all invalidations.
174
+ */
175
+ invalidates?: (
176
+ data: InferSuccessResponse<TContract>,
177
+ variables: EndpointCallArgs<TContract, TProvidedHeaders>,
178
+ ) =>
179
+ | readonly InvalidateQueryFilters<QueryKey>[]
180
+ | Promise<readonly InvalidateQueryFilters<QueryKey>[]>;
181
+ };
155
182
 
156
183
  /**
157
184
  * Body input for infinite queries.
@@ -296,6 +323,14 @@ function normalizeBodyKeyValue(value: unknown): unknown | undefined {
296
323
  const BEIGNET_QUERY_KEY_SCOPE = "beignet";
297
324
  const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
298
325
 
326
+ function assertCustomQueryKey(key: QueryKey | undefined): void {
327
+ if (key?.[0] === BEIGNET_QUERY_KEY_SCOPE) {
328
+ throw new Error(
329
+ 'Custom query keys must not use the reserved "beignet" prefix. Omit key to use the contract-generated key.',
330
+ );
331
+ }
332
+ }
333
+
299
334
  /**
300
335
  * Generated idempotency keys keyed by mutation variables object identity.
301
336
  *
@@ -306,6 +341,13 @@ const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
306
341
  */
307
342
  const idempotencyKeyForVariables = new WeakMap<object, string>();
308
343
 
344
+ // The invocation context survives retries and option updates during React
345
+ // renders, and stays distinct even when concurrent mutations reuse variables.
346
+ const successDefaults = new WeakMap<
347
+ MutationFunctionContext,
348
+ UseMutationOptions<unknown, unknown, unknown, unknown>["onSuccess"]
349
+ >();
350
+
309
351
  /**
310
352
  * Generate an idempotency key that works in non-secure browser contexts.
311
353
  * `crypto.randomUUID` is undefined on plain `http://` hosts other than
@@ -586,6 +628,57 @@ export class ReactQueryContractHelper<
586
628
  return queryClient.invalidateQueries(this.filter(params, options));
587
629
  }
588
630
 
631
+ /**
632
+ * Inspect matching standard queries using this contract's generated keys.
633
+ * Skips infinite queries and custom keys.
634
+ */
635
+ cacheEntries(
636
+ queryClient: QueryClient,
637
+ match?: ContractQueryKeyParams<TContract, TProvidedHeaders>,
638
+ ): ContractCacheEntry<TContract>[] {
639
+ return queryClient
640
+ .getQueryCache()
641
+ .findAll(this.filter(match))
642
+ .flatMap((query) => {
643
+ const params = readCacheParams<TContract>(query, this.contractKey());
644
+ return params === undefined
645
+ ? []
646
+ : [
647
+ {
648
+ queryKey: query.queryKey,
649
+ params,
650
+ data: query.state.data as
651
+ | InferSuccessResponse<TContract>
652
+ | undefined,
653
+ },
654
+ ];
655
+ });
656
+ }
657
+
658
+ /**
659
+ * Update matching existing standard queries. Does not create entries or
660
+ * coordinate optimistic writes; updaters must return immutable data.
661
+ */
662
+ updateCachedQueries(
663
+ queryClient: QueryClient,
664
+ options: UpdateCachedQueriesOptions<TContract, TProvidedHeaders>,
665
+ ): void {
666
+ const cache = queryClient.getQueryCache();
667
+ for (const query of cache.findAll(this.filter(options.match))) {
668
+ if (cache.get(query.queryHash) !== query) continue;
669
+ const params = readCacheParams<TContract>(query, this.contractKey());
670
+ if (params === undefined) continue;
671
+ const data = options.update({
672
+ queryKey: query.queryKey,
673
+ params,
674
+ data: query.state.data as InferSuccessResponse<TContract> | undefined,
675
+ });
676
+ if (data !== undefined && cache.get(query.queryHash) === query) {
677
+ query.setData(data, { manual: true });
678
+ }
679
+ }
680
+ }
681
+
589
682
  /**
590
683
  * Create query options for TanStack Query.
591
684
  *
@@ -608,6 +701,7 @@ export class ReactQueryContractHelper<
608
701
  TData
609
702
  >;
610
703
  const { path, query, body, headers, key: customKey, ...rest } = args;
704
+ assertCustomQueryKey(customKey);
611
705
 
612
706
  const queryKey = (customKey ||
613
707
  this.key({ path, query, body, headers })) as QueryKey;
@@ -654,7 +748,14 @@ export class ReactQueryContractHelper<
654
748
  const hasIdempotencyMetadata = Boolean(this.contract.metadata?.idempotency);
655
749
  const mutationFn = async (
656
750
  vars: EndpointCallArgs<TContract, TProvidedHeaders>,
751
+ context?: MutationFunctionContext,
657
752
  ) => {
753
+ if (context && !successDefaults.has(context)) {
754
+ const { onSuccess } = context.client.defaultMutationOptions<
755
+ UseMutationOptions<unknown, unknown, unknown, unknown>
756
+ >({ mutationKey: context.mutationKey });
757
+ successDefaults.set(context, onSuccess);
758
+ }
658
759
  let idempotencyKey = vars?.idempotencyKey;
659
760
  if (
660
761
  !idempotencyKey &&
@@ -675,15 +776,54 @@ export class ReactQueryContractHelper<
675
776
  } as EndpointCallArgs<TContract, TProvidedHeaders>);
676
777
  };
677
778
 
678
- return {
679
- ...args,
680
- mutationFn,
681
- } as UseMutationOptions<
682
- InferSuccessResponse<TContract>,
683
- InferEndpointContractError<TContract>,
684
- EndpointCallArgs<TContract, TProvidedHeaders>,
685
- unknown
779
+ const { invalidates, ...rest } = args;
780
+ if (!invalidates) return { ...rest, mutationFn };
781
+ type SuccessCallback = NonNullable<
782
+ ContractUseMutationOptions<TContract, TProvidedHeaders>["onSuccess"]
686
783
  >;
784
+ // Composed defaults can point back to an earlier wrapper. Each wrapper
785
+ // handles an invocation once, even when reached through that cycle.
786
+ const handledInvocations = new WeakSet<MutationFunctionContext>();
787
+ const onSuccess: SuccessCallback = async (
788
+ data,
789
+ variables,
790
+ onMutateResult,
791
+ context,
792
+ ) => {
793
+ if (handledInvocations.has(context)) return;
794
+ handledInvocations.add(context);
795
+ const errors: unknown[] = [];
796
+ try {
797
+ const callback = Object.hasOwn(rest, "onSuccess")
798
+ ? rest.onSuccess
799
+ : successDefaults.get(context);
800
+ await callback?.(data, variables, onMutateResult, context);
801
+ } catch (error) {
802
+ errors.push(error);
803
+ }
804
+ try {
805
+ const filters = await invalidates(data, variables);
806
+ const results = await Promise.allSettled(
807
+ filters.map((filter) =>
808
+ Promise.resolve().then(() =>
809
+ context.client.invalidateQueries(filter),
810
+ ),
811
+ ),
812
+ );
813
+ for (const result of results) {
814
+ if (result.status === "rejected") errors.push(result.reason);
815
+ }
816
+ } catch (error) {
817
+ errors.push(error);
818
+ }
819
+ if (errors.length === 1) throw errors[0];
820
+ if (errors.length > 1)
821
+ throw new AggregateError(
822
+ errors,
823
+ `Post-success handling failed for ${this.name}.`,
824
+ );
825
+ };
826
+ return { ...rest, mutationFn, onSuccess };
687
827
  }
688
828
 
689
829
  /**
@@ -698,6 +838,9 @@ export class ReactQueryContractHelper<
698
838
  * The observed data defaults to `InfiniteData` of the contract response, so
699
839
  * `useInfiniteQuery(...).data.pages` is typed per page. Pass `select` to
700
840
  * narrow the observed data type.
841
+ *
842
+ * Generated keys append "infinite" to the standard key. Use the returned
843
+ * queryKey for direct cache access; parameter-prefix filters match both.
701
844
  */
702
845
  infiniteQueryOptions<
703
846
  TPageParam = unknown,
@@ -710,6 +853,7 @@ export class ReactQueryContractHelper<
710
853
  TData
711
854
  >,
712
855
  ): ContractInfiniteQueryOptionsResult<TContract, TPageParam, TData> {
856
+ assertCustomQueryKey(args.key);
713
857
  let queryKey: QueryKey;
714
858
  let rest: Omit<
715
859
  ContractInfiniteQueryOptions<
@@ -736,7 +880,10 @@ export class ReactQueryContractHelper<
736
880
  resolveParams = params;
737
881
  } else {
738
882
  const { path, query, body, headers, page, key, ...other } = args;
739
- queryKey = (key || this.key({ path, query, body, headers })) as QueryKey;
883
+ queryKey = key || [
884
+ ...this.key({ path, query, body, headers }),
885
+ "infinite",
886
+ ];
740
887
  rest = other;
741
888
  resolveParams = (context) => {
742
889
  const pageParams = page?.(context);