@ethlete/query 6.0.0-next.28 → 6.0.0-next.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "6.0.0-next.28",
3
+ "version": "6.0.0-next.29",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
@@ -82,6 +82,8 @@ type AuthTestSetupConfig<TLoginArgs extends {
82
82
  refreshIfExpired?: boolean;
83
83
  /** Property name for expiration in JWT */
84
84
  expiresInPropertyName?: string;
85
+ /** What to do when the refresh query fails for good. Defaults to the provider's own policy */
86
+ onRefreshFailure?: TokenRefreshQueryConfig<TRefreshArgs>['onRefreshFailure'];
85
87
  };
86
88
  type AuthTestSetup<TLoginArgs extends {
87
89
  body: Record<string, unknown>;
@@ -211,6 +211,8 @@ type QueryExecuteOptions<TArgs extends QueryArgs> = {
211
211
  args: RequestArgs<TArgs> | null;
212
212
  options?: RunQueryExecuteOptions;
213
213
  isSecure?: boolean;
214
+ /** @see QueryRepositoryRequestOptions.isRefreshable */
215
+ isRefreshable?: boolean;
214
216
  };
215
217
  declare const queryExecute: <TArgs extends QueryArgs>(options: QueryExecuteOptions<TArgs>) => void;
216
218
  declare const circularQueryDependencyChecker: () => {
@@ -233,6 +235,12 @@ type QueryRefreshCause = {
233
235
  /** Whether another tab asked for it rather than this one. */
234
236
  otherTab: boolean;
235
237
  };
238
+ /**
239
+ * What tore a cache entry down: the last consumer went away (`unbind`), its `keepUnusedFor` window ran
240
+ * out (`expired`), it was the least recently orphaned entry over the cap (`unused-cap`), a logout
241
+ * dropped every secure entry (`logout`), or something evicted it by hand (`manual`).
242
+ */
243
+ type QueryRepositoryEntryDestroyedCause = 'unbind' | 'expired' | 'unused-cap' | 'logout' | 'manual';
236
244
  type QueryRepositoryEvent = {
237
245
  type: 'request-error';
238
246
  error: HttpErrorResponse;
@@ -285,6 +293,22 @@ type QueryRepositoryEvent = {
285
293
  cause: QueryRefreshCause;
286
294
  /** The requests that were re-executed, in cache order. */
287
295
  requests: HttpRequest<QueryArgs>[];
296
+ } | {
297
+ /**
298
+ * A cache entry was torn down: its request is destroyed and the key is gone from the cache.
299
+ * Emitted after the deletion, and for every teardown path there is - which is what makes "why
300
+ * did this entry disappear" answerable at all. {@link unbindAllSecure} emits one of these per
301
+ * entry as well as its own `unbind-all-secure`.
302
+ *
303
+ * The repository keeps no record of its own; a consumer that wants a history of destroyed
304
+ * entries (the devtools panel) is the one that keeps it.
305
+ */
306
+ type: 'entry-destroyed';
307
+ key: QueryKey;
308
+ isSecure: boolean;
309
+ method: QueryMethod;
310
+ url: string;
311
+ cause: QueryRepositoryEntryDestroyedCause;
288
312
  } | {
289
313
  /**
290
314
  * Every secure entry was torn down at once - a logout. Emitted after the cache is cleared so
@@ -320,6 +344,12 @@ type QueryRepositoryRequestOptions<TArgs extends QueryArgs> = {
320
344
  runQueryOptions?: RunQueryExecuteOptions;
321
345
  /** @see QueryConfig.silenceUncacheableAllowCacheError */
322
346
  silenceUncacheableAllowCacheError?: boolean;
347
+ /**
348
+ * Whether re-running the request on its own is safe, i.e. whether {@link QueryRepository.refreshInUse}
349
+ * may fire it again. Defaults to the method being a read (`GET`/`HEAD`/`OPTIONS`); the GraphQL
350
+ * execute path passes `true` for a query transported via `POST`.
351
+ */
352
+ isRefreshable?: boolean;
323
353
  };
324
354
  type QueryRepositoryItem<TArgs extends QueryArgs> = {
325
355
  /** The key of the request (either a cache key for cacheable requests or a UUID for uncacheable requests) */
@@ -516,8 +546,14 @@ type JsonPath = (string | number)[];
516
546
  * whole body, which is what lets it survive a refetch that returns a differently-valued but same-shaped
517
547
  * response.
518
548
  *
519
- * `reset` is never stored or replayed - arming one clears the other ops already armed at its exact path
520
- * instead, so the panel's "reset this value" action and its "arm an edit" actions share one entry point.
549
+ * `reset` is never stored or replayed - arming one clears the other ops already armed at its path or
550
+ * anywhere below it instead, so the panel's "reset this value" action and its "arm an edit" actions
551
+ * share one entry point. Resetting a container therefore undoes a "fill recursively" run, whose ops
552
+ * sit on the leaves rather than on the container itself.
553
+ *
554
+ * On the preset ops, `custom` - when present - is the exact value replayed, and `preset` is only the
555
+ * label it was generated under. Values are generated once at arm time and stored, never re-rolled
556
+ * inside apply, so a refetch replays the same response instead of reshuffling it.
521
557
  */
522
558
  type OverrideOp = {
523
559
  type: 'set';
@@ -526,7 +562,7 @@ type OverrideOp = {
526
562
  } | {
527
563
  type: 'stringPreset';
528
564
  path: JsonPath;
529
- preset: 'short' | 'long' | 'unicode' | 'custom';
565
+ preset: 'short' | 'long' | 'longWord' | 'unicode' | 'custom';
530
566
  custom?: string;
531
567
  } | {
532
568
  type: 'numberPreset';
@@ -573,11 +609,16 @@ type QueryDevtoolsOverridesHandle = {
573
609
  /** The write side, used by the instrumentation inside the query itself. */
574
610
  type QueryDevtoolsOverridesRecorder = QueryDevtoolsOverridesHandle & {
575
611
  /**
576
- * Arms a new op, or - for `{ type: 'reset' }` - disarms whatever op(s) already sit at that exact path
577
- * instead of adding one.
612
+ * Arms a new op, or - for `{ type: 'reset' }` - disarms whatever op(s) already sit at that path or
613
+ * below it instead of adding one.
578
614
  */
579
615
  arm: (op: OverrideOp) => void;
580
616
  };
617
+ /**
618
+ * Whether any of `entries` is armed at `path` or anywhere below it - what the panel's menu asks before
619
+ * offering "Reset", so the destructive action is hidden where it would be a silent no-op.
620
+ */
621
+ declare const hasQueryDevtoolsOverridesAtPath: (entries: readonly QueryDevtoolsOverrideEntry[], path: JsonPath) => boolean;
581
622
  /**
582
623
  * Clones `item` (a plain object array element) with every identity-shaped field replaced by a fresh
583
624
  * value, so a duplicated row never collides with the one it was copied from. A field counts as identity
@@ -610,6 +651,20 @@ declare const isDateShapedLeaf: (key: string | number | null, value: unknown) =>
610
651
  * op list with the exact same walk the docs describe, rather than a second, possibly-drifted one.
611
652
  */
612
653
  declare const collectLeafPaths: (value: unknown, kind: "string" | "number" | "boolean") => JsonPath[];
654
+ /**
655
+ * Generates a fresh sample value for a string preset, so filling twenty fields yields twenty different
656
+ * values instead of twenty identical ones. Call it at arm time and store the result in the op's
657
+ * `custom` field - generating inside apply would reshuffle the response on every refetch. `longWord`
658
+ * is a single unbreakable token (a compound word, a URL, a hex blob) - it tests overflow, where
659
+ * `long` tests wrapping.
660
+ */
661
+ declare const generateQueryDevtoolsStringPreset: (preset: "short" | "long" | "longWord" | "unicode") => string;
662
+ /**
663
+ * Generates a fresh sample value for a number preset - same arm-time contract as
664
+ * {@link generateQueryDevtoolsStringPreset}. `negative` and `huge` vary in magnitude so a batch fill
665
+ * produces varied digit counts; `zero` is always `0`.
666
+ */
667
+ declare const generateQueryDevtoolsNumberPreset: (preset: "zero" | "negative" | "huge") => number;
613
668
  /**
614
669
  * Replays `entries` against `raw`, in order, and reports which ones no longer resolve. Shared by the
615
670
  * pipeline (which only needs {@link value}) and the panel's menu (which previews a value and marks stale
@@ -681,6 +736,24 @@ type QueryDevtoolsPayload = {
681
736
  * waiting for can no longer reach it.
682
737
  */
683
738
  type QueryDevtoolsRunStatus = 'pending' | 'success' | 'error' | 'aborted';
739
+ /**
740
+ * How a run failed, kept on the run itself. The query's own `error` signal is the live one, but it is
741
+ * blanked whenever the query resets - a logout resets every secure query - so it cannot be read back
742
+ * after the fact. This is the copy that survives.
743
+ */
744
+ type QueryDevtoolsRunError = {
745
+ /** The HTTP status code, or 0 for a failure that never reached a response. */
746
+ code: number;
747
+ /** Every message the error carried, flattened. @see queryErrorMessages */
748
+ messages: string[];
749
+ /**
750
+ * The error response body. Only the newest few runs keep theirs, under the same budget as
751
+ * {@link QueryDevtoolsRun.response}.
752
+ */
753
+ body: unknown;
754
+ /** Whether {@link body} still holds this run's error body. */
755
+ hasBody: boolean;
756
+ };
684
757
  /**
685
758
  * A single run of a query, kept alongside the running totals so overlapping runs stay tellable apart -
686
759
  * which is what turns "ran 40 times" into "ran 40 times in two seconds".
@@ -722,6 +795,8 @@ type QueryDevtoolsRun = {
722
795
  response: unknown;
723
796
  /** Whether {@link response} still holds this run's body; a dropped and an empty body both read `null`. */
724
797
  hasResponse: boolean;
798
+ /** How the run failed, or `null` for one that did not. */
799
+ error: QueryDevtoolsRunError | null;
725
800
  };
726
801
  /** The read side of a stats recorder, as a {@link QueryDevtoolsEntry} exposes it to the panel. */
727
802
  type QueryDevtoolsStatsHandle = {
@@ -744,7 +819,10 @@ type QueryDevtoolsStatsRecorder = QueryDevtoolsStatsHandle & {
744
819
  }) => void;
745
820
  recordResponse: (payload: QueryDevtoolsPayload) => void;
746
821
  recordError: (options?: {
822
+ /** Whether the error is a devtools fault rather than a real failure. */
747
823
  faulted?: boolean;
824
+ /** The failure itself, for {@link QueryDevtoolsRun.error}. */
825
+ error?: QueryErrorResponse;
748
826
  }) => void;
749
827
  /**
750
828
  * Raises the attempt count of the run in flight. Idempotent per attempt, so a caller driven off a
@@ -754,6 +832,14 @@ type QueryDevtoolsStatsRecorder = QueryDevtoolsStatsHandle & {
754
832
  attempt: number;
755
833
  }) => void;
756
834
  };
835
+ /**
836
+ * How many bodies each query retains - {@link QueryDevtoolsOptions.responseHistory}, or `5`. Only a run
837
+ * that still holds one can be an end of a response diff, so the panel reads this to say why an older run
838
+ * can no longer be picked.
839
+ *
840
+ * Part of the devtools contract. **Not part of the general public contract.**
841
+ */
842
+ declare const queryDevtoolsResponseHistory: () => number;
757
843
  /**
758
844
  * The size of a payload in bytes, and whether that size is the one that went over the wire. Only a
759
845
  * `content-length` header is exact; everything else is measured by serializing the body.
@@ -1084,6 +1170,9 @@ type BaseQueryCreatorOptionsSubtle = {
1084
1170
  * - `true` means the request will always be cached
1085
1171
  * - `false` means the request will never be cached
1086
1172
  * - `undefined` means the request will be cached if the method is GET, OPTIONS or HEAD
1173
+ *
1174
+ * This says nothing about whether the request may be re-run: `refreshQueriesInUse()` and
1175
+ * `invalidateQueries()` still only fire reads.
1087
1176
  */
1088
1177
  useQueryRepositoryCache?: boolean;
1089
1178
  };
@@ -2056,8 +2145,9 @@ type QueryClient = {
2056
2145
  * the new value only affects *subsequent* requests, so anything already resolved keeps data
2057
2146
  * fetched under the old one until this is called.
2058
2147
  *
2059
- * Only cacheable requests are refreshed: re-firing a mutation nobody asked for would be a far worse
2060
- * surprise than a stale read.
2148
+ * Only reads are refreshed - `GET`/`HEAD`/`OPTIONS` and GraphQL queries transported via `POST`:
2149
+ * re-firing a mutation nobody asked for would be a far worse surprise than a stale read. A `POST`
2150
+ * that merely opted into the repository cache stays untouched.
2061
2151
  *
2062
2152
  * @see QueryClient.invalidateQueries for the case where the *data* went stale rather than the
2063
2153
  * request, which is the one that also concerns the user's other tabs.
@@ -2076,7 +2166,7 @@ type QueryClient = {
2076
2166
  * client.invalidateQueries({ url: '/players' }); // /players, /players/1, /players?page=2
2077
2167
  * client.invalidateQueries(); // everything on screen, here and in the other tabs
2078
2168
  *
2079
- * Same set as {@link QueryClient.refreshQueriesInUse}: cacheable entries with at least one
2169
+ * Same set as {@link QueryClient.refreshQueriesInUse}: reads with at least one
2080
2170
  * consumer, cache bypassed, in-flight requests restarted. Entries sitting out their `keepUnusedFor`
2081
2171
  * window are deliberately left alone - they revalidate on their own when a consumer binds again,
2082
2172
  * and refreshing what nobody is looking at is how an invalidation turns into a request storm.
@@ -2595,6 +2685,10 @@ type CreatePagedQueryStackOptions<TArgs extends QueryArgs, TNormPagination exten
2595
2685
  /**
2596
2686
  * If true, no queries will be executed while the paged query is loading.
2597
2687
  * This is useful if you need the current response to be used in the next query.
2688
+ *
2689
+ * This governs the `fetchNextPage()` / `fetchPreviousPage()` methods only. The
2690
+ * `canFetchNextPage` / `canFetchPreviousPage` signals are `false` while any page loads either way,
2691
+ * so a UI bound to them never issues the concurrent call this option would allow.
2598
2692
  */
2599
2693
  blockExecutionDuringLoading?: boolean;
2600
2694
  };
@@ -3221,8 +3315,10 @@ type CreateQueryStackOptions<TCreator extends AnyQueryCreator, TDeps extends ()
3221
3315
  };
3222
3316
  /**
3223
3317
  * Transforms the responses of all queries in the stack. Useful for merging or filtering responses.
3318
+ * A response is `null` while its query is loading or errored, so a transform runs on nulls before
3319
+ * anything has settled.
3224
3320
  */
3225
- transform?: (responses: ResponseType<QueryArgsOf<TCreator>>[]) => TTransform;
3321
+ transform?: (responses: (ResponseType<QueryArgsOf<TCreator>> | null)[]) => TTransform;
3226
3322
  /**
3227
3323
  * If true, prevents creating queries with identical args.
3228
3324
  * Useful for append mode to avoid duplicate data fetching.
@@ -3383,8 +3479,13 @@ type TokenRefreshQueryConfig<TArgs extends QueryArgs> = AuthQueryConfig<TArgs> &
3383
3479
  maxBufferMs?: number;
3384
3480
  };
3385
3481
  /**
3386
- * Minimum interval between refresh attempts in milliseconds.
3482
+ * Minimum interval between the *proactive* refreshes the expiry timer schedules, in milliseconds.
3387
3483
  * Prevents rapid refresh loops in case of issues.
3484
+ *
3485
+ * A refresh a 401 asked for is never throttled by this - a token revoked seconds after a proactive
3486
+ * refresh is exactly when the request must go out. Those are deduplicated instead: one refresh is
3487
+ * in flight at a time.
3488
+ *
3388
3489
  * @default 30000 (30 seconds)
3389
3490
  */
3390
3491
  minRefreshInterval?: number;
@@ -3422,6 +3523,34 @@ type TokenRefreshQueryConfig<TArgs extends QueryArgs> = AuthQueryConfig<TArgs> &
3422
3523
  * @default true
3423
3524
  */
3424
3525
  autoRetryOn401?: boolean;
3526
+ /**
3527
+ * What to do once the refresh query has failed for good - `retryConfig` decides what is retried,
3528
+ * this decides what a failure that survived it means.
3529
+ *
3530
+ * Defaults to ending the session for any status `retryConfig.retryableStatusCodes` does not list:
3531
+ * those are the failures that could still succeed later, everything else leaves the tab holding a
3532
+ * token the server will not renew. Without this the session would look valid while every secure
3533
+ * query 401s.
3534
+ *
3535
+ * @example
3536
+ * withRefreshQuery('refresh', {
3537
+ * queryCreator: refresh,
3538
+ * onRefreshFailure: ({ error, logout }) => {
3539
+ * if (error.code !== 503) logout();
3540
+ * },
3541
+ * });
3542
+ */
3543
+ onRefreshFailure?: (failure: RefreshFailure) => void;
3544
+ };
3545
+ /** What {@link TokenRefreshQueryConfig.onRefreshFailure} is handed when a refresh gives up. */
3546
+ type RefreshFailure = {
3547
+ /** The error the refresh query ended on. */
3548
+ error: QueryErrorResponse;
3549
+ /**
3550
+ * Ends the session, exactly as the provider's own `logout()` does, reporting `sessionEndCause`
3551
+ * as `'expired'`.
3552
+ */
3553
+ logout: () => void;
3425
3554
  };
3426
3555
  type AuthQueryBuilder<TKey extends string, TArgs extends QueryArgs> = {
3427
3556
  _type: 'authQuery';
@@ -3489,8 +3618,9 @@ declare const withInactivityLogout: <TBuilders extends readonly AnyQueryBuilder[
3489
3618
 
3490
3619
  type BearerAuthMultiTabSyncConfig = {
3491
3620
  /**
3492
- * Channel name for BroadcastChannel
3493
- * @default 'ethlete-auth-sync'
3621
+ * Channel name for BroadcastChannel. Defaults to a channel of the provider's own, so two providers
3622
+ * reachable from the same origin do not sync each other's sessions.
3623
+ * @default `ethlete-auth-sync:<provider name>`
3494
3624
  */
3495
3625
  channelName?: string;
3496
3626
  /**
@@ -3736,6 +3866,9 @@ type QueryFailureEventData = {
3736
3866
  type TokenRefreshEventData = {
3737
3867
  automatic: boolean;
3738
3868
  };
3869
+ type LogoutEventData = {
3870
+ cause: BearerAuthSessionEndCause | null;
3871
+ };
3739
3872
  type LeaderStatusChangeEventData = {
3740
3873
  isLeader: boolean;
3741
3874
  };
@@ -3743,7 +3876,7 @@ type LeaderInstanceCountChangeEventData = {
3743
3876
  count: number;
3744
3877
  };
3745
3878
  type TrackingEventDataMap<TBuilders extends readonly AnyQueryBuilder[]> = {
3746
- [K in TrackingEventName<TBuilders>]: K extends `${string}Execute` ? QueryExecuteEventData<ExtractArgsForEvent<TBuilders, K>> : K extends `${string}Success` ? QuerySuccessEventData<ExtractArgsForEvent<TBuilders, K>> : K extends `${string}Failure` ? QueryFailureEventData : K extends 'tokenRefreshSuccess' ? TokenRefreshEventData : K extends 'logout' ? void : K extends 'leaderStatusChange' ? LeaderStatusChangeEventData : K extends 'leaderInstanceCountChange' ? LeaderInstanceCountChangeEventData : never;
3879
+ [K in TrackingEventName<TBuilders>]: K extends `${string}Execute` ? QueryExecuteEventData<ExtractArgsForEvent<TBuilders, K>> : K extends `${string}Success` ? QuerySuccessEventData<ExtractArgsForEvent<TBuilders, K>> : K extends `${string}Failure` ? QueryFailureEventData : K extends 'tokenRefreshSuccess' ? TokenRefreshEventData : K extends 'logout' ? LogoutEventData : K extends 'leaderStatusChange' ? LeaderStatusChangeEventData : K extends 'leaderInstanceCountChange' ? LeaderInstanceCountChangeEventData : never;
3747
3880
  };
3748
3881
  type TrackingEventHandler<TData> = (data: TData) => void;
3749
3882
  type TrackingConfig<TBuilders extends readonly AnyQueryBuilder[] = readonly AnyQueryBuilder[]> = {
@@ -3803,6 +3936,28 @@ type BearerAuthExecutionStateTokenSeed = {
3803
3936
  state: 'success';
3804
3937
  };
3805
3938
  type BearerAuthExecutionState<TType extends string = string> = BearerAuthExecutionStateLoading<TType> | BearerAuthExecutionStateSuccess<TType> | BearerAuthExecutionStateError<TType> | BearerAuthExecutionStateLogout | BearerAuthExecutionStateTokenSeed;
3939
+ /**
3940
+ * Whether this tab has a session, and whether it is still finding out.
3941
+ *
3942
+ * - `unknown` - the provider has not finished its own startup yet. Never observed from a component.
3943
+ * - `restoring` - a session restore is in flight (`withPersistentAuth`'s auto-login).
3944
+ * - `authenticated` - tokens are applied.
3945
+ * - `anonymous` - no session, and nothing is trying to get one.
3946
+ */
3947
+ type BearerAuthSessionStatus = 'unknown' | 'restoring' | 'authenticated' | 'anonymous';
3948
+ /**
3949
+ * Why the session ended. A user-initiated logout must stay put; a session that ended on its own
3950
+ * usually returns the user to where they were, so the two cannot be told apart by state alone.
3951
+ */
3952
+ type BearerAuthSessionEndCause =
3953
+ /** `logout()` called with no cause - a user clicking "log out". */
3954
+ 'user'
3955
+ /** `withInactivityLogout`'s timer elapsed. */
3956
+ | 'inactivity'
3957
+ /** A token refresh failed for good, so the tab can no longer renew the session. */
3958
+ | 'expired'
3959
+ /** Another tab logged out and `withBearerAuthMultiTabSync` carried it here. */
3960
+ | 'otherTab';
3806
3961
  declare const BearerAuthFeatureType: {
3807
3962
  readonly PERSISTENT_AUTH: "PERSISTENT_AUTH";
3808
3963
  readonly TOKEN_EXPIRATION_WARNING: "TOKEN_EXPIRATION_WARNING";
@@ -3819,8 +3974,9 @@ type BearerAuthFeature<TBuilders extends readonly AnyQueryBuilder[], TBearerData
3819
3974
  devtools?: QueryDevtoolsFeatureDescriber;
3820
3975
  };
3821
3976
  /**
3822
- * What a feature gets before the provider's queries are wired up. Only the tokens and the client
3823
- * exist this early - everything else is built on top of what early setup returns.
3977
+ * What a feature gets before the provider's queries are wired up. Only the tokens, the client and the
3978
+ * two session entry points exist this early - everything else is built on top of what early setup
3979
+ * returns.
3824
3980
  *
3825
3981
  * Advanced: only a feature that has to run before the auth queries are wired needs this.
3826
3982
  */
@@ -3828,6 +3984,29 @@ type BearerAuthProviderEarlySetupContext = {
3828
3984
  accessToken: WritableSignal<string | null>;
3829
3985
  refreshToken: WritableSignal<string | null>;
3830
3986
  queryClient: QueryClient;
3987
+ /**
3988
+ * The provider's own name. A feature that reaches outside the tab - a `BroadcastChannel`, a Web Lock,
3989
+ * a storage key - must namespace it with this, or two providers on the same origin share it.
3990
+ */
3991
+ name: string;
3992
+ /**
3993
+ * Applies a token pair the way a successful auth query does - including the `afterTokenRefresh$`
3994
+ * emission that retries secure queries which failed with a 401. Prefer this over writing
3995
+ * {@link accessToken} and {@link refreshToken}, which only changes what the next request sends.
3996
+ */
3997
+ applyTokens: (access: string, refresh: string) => void;
3998
+ /** Ends the session, exactly as the provider's own `logout()` does. */
3999
+ logout: (cause?: BearerAuthSessionEndCause) => void;
4000
+ };
4001
+ /**
4002
+ * How a tab that is not the leader gets a refresh out of the tab that is. Contributed by
4003
+ * `withBearerAuthMultiTabSync`; absent when every tab refreshes for itself.
4004
+ */
4005
+ type BearerAuthRefreshCoordination = {
4006
+ /** Asks the leader tab to refresh the session's tokens now. */
4007
+ request: () => void;
4008
+ /** Emits in the leader tab whenever another tab asked for a refresh. */
4009
+ requests$: Observable<void>;
3831
4010
  };
3832
4011
  /** The parts of the provider an early setup can contribute. */
3833
4012
  type BearerAuthProviderEarlySetupResult = {
@@ -3836,6 +4015,7 @@ type BearerAuthProviderEarlySetupResult = {
3836
4015
  isLeader: Signal<boolean>;
3837
4016
  instanceCount: Signal<number>;
3838
4017
  };
4018
+ refreshCoordination?: BearerAuthRefreshCoordination;
3839
4019
  };
3840
4020
  /**
3841
4021
  * A feature builder that additionally runs before the auth queries are set up. The auth queries read
@@ -3949,6 +4129,17 @@ type BearerAuthProvider<TBuilders extends readonly AnyQueryBuilder[], TFeatures
3949
4129
  * Tracks the latest auth operation (login, autoLogin, tokenRefresh, logout, revocation) with its state and payload.
3950
4130
  */
3951
4131
  executionState: Signal<BearerAuthExecutionState<ExtractQueryKey<TBuilders[number]> | 'autoLogin' | 'tokenRefresh' | 'logout' | 'revocation' | 'tokenSeed'> | null>;
4132
+ /**
4133
+ * Whether this tab has a session, and whether it is still finding out - the signal to gate an app
4134
+ * shell on. Unlike {@link executionState} it always has a value, it answers only this one question,
4135
+ * and it reaches `anonymous` even when nothing ever executed (no cookie to restore from).
4136
+ */
4137
+ sessionStatus: Signal<BearerAuthSessionStatus>;
4138
+ /**
4139
+ * Why the last session ended, or `null` while one is running and before the first ever ended.
4140
+ * Cleared as soon as tokens are applied again.
4141
+ */
4142
+ sessionEndCause: Signal<BearerAuthSessionEndCause | null>;
3952
4143
  /**
3953
4144
  * Seeds the provider with tokens that were issued outside of it - an SSO/OIDC callback that
3954
4145
  * arrives with both tokens in the URL, a token handed over by a native shell, a test harness.
@@ -3964,9 +4155,10 @@ type BearerAuthProvider<TBuilders extends readonly AnyQueryBuilder[], TFeatures
3964
4155
  */
3965
4156
  setTokens: (accessToken: string, refreshToken: string) => void;
3966
4157
  /**
3967
- * Logout the user (clears all tokens and unbinds secure queries)
4158
+ * Logout the user (clears all tokens and unbinds secure queries). The optional cause is published
4159
+ * as {@link sessionEndCause}; it defaults to `'user'`, so a plain `logout()` reads as a click.
3968
4160
  */
3969
- logout: () => void;
4161
+ logout: (cause?: BearerAuthSessionEndCause) => void;
3970
4162
  /**
3971
4163
  * Observable that emits after a successful token refresh.
3972
4164
  * Secure queries can subscribe to this to re-execute themselves with the new token.
@@ -3978,7 +4170,7 @@ type BearerAuthProviderFeatureContext<TBearerData = unknown, TBuilders extends r
3978
4170
  afterTokenRefresh$: Observable<void>;
3979
4171
  accessToken: WritableSignal<string | null>;
3980
4172
  bearerData: Signal<TBearerData | null>;
3981
- logout: () => void;
4173
+ logout: (cause?: BearerAuthSessionEndCause) => void;
3982
4174
  injector: Injector;
3983
4175
  destroyRef: DestroyRef;
3984
4176
  setTokens: (access: string, refresh: string) => void;
@@ -3989,6 +4181,8 @@ type BearerAuthProviderFeatureContext<TBearerData = unknown, TBuilders extends r
3989
4181
  };
3990
4182
  queries: QueryRegistry<TBuilders>;
3991
4183
  executionState: WritableSignal<BearerAuthExecutionState | null>;
4184
+ sessionStatus: Signal<BearerAuthSessionStatus>;
4185
+ sessionEndCause: Signal<BearerAuthSessionEndCause | null>;
3992
4186
  };
3993
4187
  type BearerAuthProviderQueryContext<TBearerData = unknown, TBuilders extends readonly AnyQueryBuilder[] = readonly AnyQueryBuilder[]> = {
3994
4188
  accessToken: WritableSignal<string | null>;
@@ -3998,7 +4192,12 @@ type BearerAuthProviderQueryContext<TBearerData = unknown, TBuilders extends rea
3998
4192
  repository: QueryRepository;
3999
4193
  afterTokenRefresh$: Observable<void>;
4000
4194
  isLeader: () => boolean;
4195
+ refreshCoordination: BearerAuthRefreshCoordination | undefined;
4196
+ /** Ends the session, exactly as the provider's own `logout()` does. */
4197
+ logout: (cause?: BearerAuthSessionEndCause) => void;
4001
4198
  queries: QueryRegistry<TBuilders>;
4199
+ /** Whether any execution that can issue tokens is still running, across every registry key. */
4200
+ hasTokenIssuingExecutionInFlight: Signal<boolean>;
4002
4201
  };
4003
4202
  declare const createBearerAuthProvider: <TBuilders extends readonly AnyQueryBuilder[], TFeatures extends readonly ((context: BearerAuthProviderFeatureContext<TBearerData, TBuilders>) => unknown)[], TBearerData = unknown>(config: CreateBearerAuthProviderConfig<TBuilders, TFeatures, TBearerData>) => ProviderDefinition<BearerAuthProvider<TBuilders, TFeatures, TBearerData>>;
4004
4203
  type BearerAuthProviderRef<TBuilders extends readonly AnyQueryBuilder[] = readonly AnyQueryBuilder[], TFeatures extends readonly ((context: BearerAuthProviderFeatureContext<TBearerData, TBuilders>) => unknown)[] = readonly ((context: BearerAuthProviderFeatureContext<unknown, readonly AnyQueryBuilder[]>) => unknown)[], TBearerData = unknown> = ProviderDefinition<BearerAuthProvider<TBuilders, TFeatures, TBearerData>>;
@@ -4218,6 +4417,14 @@ type QueryDevtoolsEntry = {
4218
4417
  meta: QueryDevtoolsEntryMeta;
4219
4418
  handle: unknown;
4220
4419
  createdAt: number;
4420
+ /**
4421
+ * When the query behind this entry was destroyed, or `null`/absent while it is still live. A
4422
+ * destroyed entry is kept as a tombstone - a frozen snapshot of what the query last held - so a
4423
+ * request that failed on the way out (a `401` that redirects to login and takes its component with
4424
+ * it) is still readable by the time the panel is opened. Its `handle` answers with constants and
4425
+ * every action on it is inert.
4426
+ */
4427
+ destroyedAt?: number | null;
4221
4428
  /**
4222
4429
  * What the entry has done since it was created - executions, requests, payload sizes. Present for
4223
4430
  * queries; stacks, sequences and auth providers aggregate the stats of the queries they own instead.
@@ -4287,6 +4494,19 @@ type QueryDevtoolsResolvedFault = {
4287
4494
  declare const queryDevtoolsEntries: Signal<QueryDevtoolsEntry[]>;
4288
4495
  /** Renders parsed route parts as a template, e.g. `/team/:teamId/players`. */
4289
4496
  declare const stringifyQueryRouteParts: (parts: QueryDevtoolsRoutePart[]) => string;
4497
+ /**
4498
+ * Forgets every destroyed entry the registry is holding - the panel's "clear gone" action. Live
4499
+ * entries are untouched.
4500
+ */
4501
+ declare const clearQueryDevtoolsTombstones: () => void;
4502
+ type QueryDevtoolsOptions = {
4503
+ /**
4504
+ * How many of each query's most recent runs keep their response (or error) body, which is what the
4505
+ * panel's response diff compares. Defaults to `5`. Bodies dominate what the run buffer retains, so
4506
+ * raise this only as far as the reach you actually need - a polling query holds one per run.
4507
+ */
4508
+ responseHistory?: number;
4509
+ };
4290
4510
  /**
4291
4511
  * Enables the `@ethlete/query` devtools. Add this to your application providers (e.g. in
4292
4512
  * `bootstrapApplication`) to make query clients, queries, stacks, sequences and auth providers
@@ -4302,7 +4522,33 @@ declare const stringifyQueryRouteParts: (parts: QueryDevtoolsRoutePart[]) => str
4302
4522
  * });
4303
4523
  * ```
4304
4524
  */
4305
- declare const provideQueryDevtools: () => EnvironmentProviders;
4525
+ declare const provideQueryDevtools: (options?: QueryDevtoolsOptions) => EnvironmentProviders;
4526
+
4527
+ /**
4528
+ * How many destroyed queries the registry keeps. A tombstone holds the last response body it captured,
4529
+ * so the list is capped for the same reason the repository caps its unused entries.
4530
+ */
4531
+ declare const MAX_QUERY_DEVTOOLS_TOMBSTONES = 50;
4532
+ /**
4533
+ * A destroyed query's last state, shaped like the query itself: every signal the panel reads is
4534
+ * replaced by a function returning the value it held when the query went away, and every action is a
4535
+ * no-op. Rendering a tombstone therefore costs the panel no second code path - the drawer reads
4536
+ * `entry.handle` exactly as it does for a live query, and gates its actions on
4537
+ * {@link QueryDevtoolsEntry.destroyedAt} instead.
4538
+ *
4539
+ * The captured request is a plain copy, not the request itself: the real one is destroyed the moment
4540
+ * its cache entry is, and holding it would keep its subscriptions and its cache entry alive.
4541
+ */
4542
+ declare const snapshotQueryDevtoolsHandle: (handle: unknown) => unknown;
4543
+ /**
4544
+ * The entry a destroyed query leaves behind: the same id, kind and metadata, a frozen
4545
+ * {@link snapshotQueryDevtoolsHandle} in place of the live query, and no `element` - a DOM node whose
4546
+ * component is gone must not be kept alive by the panel.
4547
+ *
4548
+ * `stats` is carried over as-is. The recorder closes over its own signals rather than over the query,
4549
+ * so the run history that makes a failed request readable survives without retaining anything.
4550
+ */
4551
+ declare const tombstoneOf: (entry: QueryDevtoolsEntry, destroyedAt: number) => QueryDevtoolsEntry;
4306
4552
 
4307
4553
  type TransformedGqlQuery = {
4308
4554
  query: string;
@@ -7338,7 +7584,10 @@ type SocketMessageView<TMessageData = unknown> = {
7338
7584
  data: TMessageData;
7339
7585
  };
7340
7586
  type WebSocketClientSubtle = {
7341
- /** Leave a socket io room */
7587
+ /**
7588
+ * Releases one join of a socket io room. Joiners of the same room share it, so the room is only
7589
+ * actually left once every one of them has released it.
7590
+ */
7342
7591
  leaveRoom: (room: string) => void;
7343
7592
  };
7344
7593
  type WebSocketClient<TMessageData extends SocketMessageView> = {
@@ -7356,6 +7605,11 @@ type WebSocketClient<TMessageData extends SocketMessageView> = {
7356
7605
  };
7357
7606
  type InternalWebSocketRoom<TMessageData extends SocketMessageView> = {
7358
7607
  latestMessage: WritableSignal<TMessageData | null>;
7608
+ /**
7609
+ * How many callers currently hold this room. Joiners share one room object, so the room may only be
7610
+ * left once this reaches zero - otherwise the first caller to unmount stops the messages for the rest.
7611
+ */
7612
+ joinCount: number;
7359
7613
  };
7360
7614
  type WebSocketRoom<TMessageData extends SocketMessageView> = {
7361
7615
  /** The latest message received in the room */
@@ -7365,5 +7619,5 @@ type WebSocketClientResult<TMessageData extends SocketMessageView = SocketMessag
7365
7619
  type AnyWebSocketClient<TMessageData extends SocketMessageView = SocketMessageView> = WebSocketClientResult<TMessageData>;
7366
7620
  declare const createWebSocketClient: <TMessageData extends SocketMessageView = SocketMessageView>(options: CreateWebSocketClientConfigOptions) => WebSocketClientResult<TMessageData>;
7367
7621
 
7368
- export { AuthBearerRefreshStrategy, BasicAuthProvider, BearerAuthFeatureType, BooleanArrayQueryField, CLEAR_QUERY_ARGS, CustomHeaderAuthProvider, DEFAULT_KEEP_UNUSED_FOR, DEFAULT_QUERY_PERSISTENCE_MAX_AGE, DEFAULT_QUERY_PERSISTENCE_MAX_ENTRIES, DEFAULT_QUERY_PERSISTENCE_VERSION, DEFAULT_QUERY_PERSISTENCE_WRITE_DELAY, DateArrayQueryField, DateQueryField, EMPTY_QUERY_DEVTOOLS_FAULT, EntityStore, IGNORED_FILTER_COUNT_FIELDS, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, LegacyQuery, LegacyQueryCreator, MAX_UNUSED_ENTRIES, NumberArrayQueryField, ParseHttpErrorCodeToMessageDePipe, ParseHttpErrorCodeToMessageEnPipe, ParseHttpErrorCodeToTitleDePipe, ParseHttpErrorCodeToTitleEnPipe, QUERY_CLIENT_DEVTOOLS_TOKEN, QUERY_DEVTOOLS_FAULT_STATUSES, QUERY_PERSISTENCE_STORE_VERSION, QUERY_SYNC_PROTOCOL_VERSION, QueryClientFeatureType, QueryDevtoolsComponent, QueryDirective, QueryFeatureType, QueryField, QueryForm, QueryRuntimeErrorCode, QueryShortNamePipe, QueryStateType, QueryStore, SERVER_ERROR_KIND, SERVER_VIOLATION_ERROR_KIND, SPEED_BUFFER_TIME_IN_MS, SearchQueryField, SortQueryField, StringArrayQueryField, V2BearerAuthProvider, V2Query, V2QueryClient, V2QueryCreator, addQueryContainerHandling, applyQueryDevtoolsOverrides, applyQueryFeatures, authExtractTokensResponseMissingAccessToken, authExtractTokensResponseMissingRefreshToken, authExtractTokensResponseNotObject, authProviderFeatureUsedMultipleTimes, booleanArrayQueryField, buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, circularQueryDependency, circularQueryDependencyChecker, clearQueryDevtoolsFaults, collectLeafPaths, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, contentfulGqlLikePaginationAdapter, createBaseQuery, createBaseQueryCreator, createBearerAuthProvider, createDeleteQuery, createExecuteFn, createGetQuery, createGqlExecuteFn, createGqlMutationViaGet, createGqlMutationViaPost, createGqlQuery, createGqlQueryCreator, createGqlQueryViaGet, createGqlQueryViaPost, createHttpRequest, createIndexedDbQueryPersistenceAdapter, createInfinityQueryConfig, createLegacyQueryCreator, createNoopQueryPersistenceAdapter, createPagedQueryStack, createPatchQuery, createPersistentAuthFeature, createPostQuery, createPutQuery, createQuery, createQueryClient, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, createQueryContext, createQueryCreator, createQueryErrorResponse, createQueryFeature, createQueryInvalidationFilter, createQueryKeyLockManager, createQueryObject, createQueryPersistenceEngine, createQueryRepository, createQuerySnapshotFn, createQueryStack, createQuerySyncEngine, createQuerySyncTransport, createSecureDeleteQuery, createSecureExecuteFactory, createSecureExecuteFn, createSecureGetQuery, createSecureGqlExecuteFn, createSecureGqlMutationViaGet, createSecureGqlMutationViaPost, createSecureGqlQuery, createSecureGqlQueryCreator, createSecureGqlQueryViaGet, createSecureGqlQueryViaPost, createSecurePatchQuery, createSecurePostQuery, createSecurePutQuery, createSecureQuery, createSecureQueryCreator, createTrackingFeature, createWebSocketClient, dateArrayQueryField, dateQueryField, decryptBearer, deepFreeze, def, defineQueryForm, detectContentTypeHeader, detectPaginationShape, dynLikePaginationAdapter, effectComputed, emptyQueryArgs, ethletePaginationAdapter, executeUntilSettled, extractExpiresInSeconds, extractFormViolations, extractHtmlErrorMessage, extractQuery, fakePaginationAdapter, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, getDefaultHeaders, getQueryFeatureUsage, getResponseUrl, ggLikePaginationAdapter, gql, gqlDataPropertyMissingInResponse, hasHeader, htmlErrorPayload, htmlQueryErrorParser, ignoreAutoRefresh, injectInfinityQueryResponseDelay, injectQueryContext, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, invalidStateInsideSecureExecuteFactory, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCreateGqlQueryOptions, isCustomHeaderAuthProvider, isDateShapedLeaf, isEmptyString, isGqlQueryConfig, isHtmlErrorPayload, isLegacyQuery, isNaN, isPageOutOfRangeError, isQuery, isQueryCollection, isQueryDevtoolsFaultArmed, isQueryErrorResponse, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, isUnderInvalidatedUrl, legacyPrepareWithoutInjectionContext, mapToPaginated, mapViolationsToFormErrors, maybeExecute, measureQueryDevtoolsPayload, mergeHeaders, nestedEffect, numberArrayQueryField, pagedQueryStackNextPageCalledWithoutPreviousPage, pagedQueryStackPageBiggerThanTotalPages, pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleDe, parseHttpErrorCodeToTitleEn, pathParamsMissingInRouteFunctionError, provideInfinityQueryResponseDelay, provideLegacyPrepareFallback, provideQueryClientForDevtools, provideQueryDevtools, queryArrayComputed, queryClientFeatureUsedMultipleTimes, queryComputed, queryComputedTillTruthy, queryDevtoolsEntries, queryDevtoolsFaults, queryErrorMessage, queryErrorMessages, queryExecute, queryFeatureUsedMultipleTimes, queryField, querySequence, querySequenceAlreadyRunning, queryStackTotalQueriesAndExpectedQueriesMismatch, queryStackWithArgsUsed, queryStackWithResponseUpdateUsed, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, registerQueryErrorParser, removeFrom, request, resetExecuteState, resetPageOnError, resolveInvalidationUrl, searchQueryField, serializeBody, setDefaultQueryRetryFn, setQueryDevtoolsFault, setupQueryDependencies, setupQueryExecuteState, setupQueryState, shouldAutoExecuteGqlQuery, shouldAutoExecuteQuery, shouldCacheQuery, shouldRetryRequest, silenceMissingWithArgsFeatureErrorUsedButWithArgsPresent, skipPaginationPageParamCalculator, smartDuplicateArrayItem, sortQueryField, splitQueryConfig, stringArrayQueryField, stringifyQueryRouteParts, sumQueryDevtoolsStats, switchQueryCollectionState, switchQueryState, symfonyQueryErrorParser, takeUntilResponse, toQuerySignal, toQuerySubject, tokensNotAvailableInsideAuthAndExec, transformArrayResponse, transformExecStateToQueryState, transformGql, transformMethod, transformPaginatedResponse, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray, uncacheableRequestHasAllowCacheParam, uncacheableRequestHasCacheKeyParam, unwrapQuerySyncMessage, v2BuildQueryCacheKey, v2ExtractExpiresInSeconds, v2ShouldCacheQuery, v2ShouldRetryRequest, validateWithQuery, validateWithV2Query, withArgs, withArgsQueryFeatureMissingButRouteIsFunction, withAuthenticationQuery, withAutoRefresh, withAutoRefreshUsedInManualQuery, withAutoRefreshUsedOnUnsupportedHttpMethod, withBearerAuthMultiTabSync, withDefaultRetry, withErrorHandling, withEthleteApiErrors, withHtmlErrorParsing, withInactivityLogout, withLogging, withMultiTabSync, withPageResetOnError, withPersistentAuth, withPolling, withPollingUsedOnUnsupportedHttpMethod, withQueryPersistence, withRefreshQuery, withResponseUpdate, withSuccessHandling, withSymfonyErrors, withTokenExpirationWarning, withTokenRevocation, withTracking, wrapAsObservableSignal, wrapQuerySyncMessage };
7369
- export type { AnyBearerAuthProvider, AnyCreateBearerAuthProviderResult, AnyCreateGqlQueryCreatorOptions, AnyCreateQueryClientResult, AnyGqlQueryConfig, AnyInfinityQuery, AnyInfinityQueryConfig, AnyLegacyQuery, AnyLegacyQueryCreator, AnyNewQuery, AnyPagedQueryStack, AnyQueryBuilder, AnyQueryClient, AnyQueryCollection, AnyQueryCollectionData, AnyQueryCollectionResponse, AnyQueryCreator, AnyQueryCreatorCollection, AnyQueryForm, AnyQuerySnapshot, AnyQueryStack, AnyRestQueryConfig, AnyRoute, AnyV2Query, AnyV2QueryCreator, AnyWebSocketClient, AppendItemsLocation, ApplyExternalResponseOptions, ApplyPersistedResponseOptions, AuthProvider, AuthProviderBasicConfig, AuthProviderBearerConfig, AuthProviderCustomHeaderConfig, AuthQueryBuilder, AuthQueryConfig, BaseArguments, BaseQueryCreatorFactoryOptions, BaseQueryCreatorOptions, BaseQueryCreatorOptionsSubtle, BearerAuthExecutionState, BearerAuthExecutionStateError, BearerAuthExecutionStateLoading, BearerAuthExecutionStateLogout, BearerAuthExecutionStateSuccess, BearerAuthExecutionStateTokenSeed, BearerAuthFeature, BearerAuthMultiTabSyncConfig, BearerAuthMultiTabSyncFeature, BearerAuthProvider, BearerAuthProviderEarlySetup, BearerAuthProviderEarlySetupContext, BearerAuthProviderEarlySetupResult, BearerAuthProviderFeatureContext, BearerAuthProviderOf, BearerAuthProviderQueryContext, BearerAuthProviderRef, BearerAuthProviderTokens, BearerRefreshConfig, BodyType, BuildQueryStringConfig, CacheAdapterFn, Cancelled, ClassValidatorError, ClearQueryArgs, ConstructQuery, CreateBaseQueryOptions, CreateBearerAuthProviderConfig, CreateGqlQueryCreatorOptions, CreateGqlQueryExecuteOptions, CreateGqlQueryOptions, CreateHttpRequestDependencies, CreateHttpRequestOptions, CreateIndexedDbQueryPersistenceAdapterOptions, CreateLegacyQueryCreatorOptions, CreateLegacyQueryOptions, CreatePagedQueryStackOptions, CreateQueryClientConfigOptions, CreateQueryCreatorOptions, CreateQueryExecuteOptions, CreateQueryObjectOptions, CreateQueryOptions, CreateQueryPersistenceEngineOptions, CreateQueryRepositoryConfig, CreateQuerySnapshotOptions, CreateQueryStackOptions, CreateQuerySyncEngineOptions, CreateSecureGqlQueryExecuteOptions, CreateSecureGqlQueryOptions, CreateSecureQueryExecuteOptions, CreateSecureQueryOptions, CreateWebSocketClientConfigOptions, CreateWebSocketClientTransport, DefineQueryFormConfig, DescribableFeature, DestroyCleanupCallback, EmptyObject, EntityGetParams, EntityIdParams, EntityKey, EntitySetParams, EntityStoreConfig, ExecuteFactory, ExecuteQueryOptions, ExtractQueryArgs, ExtractQueryKey, Failure, FeatureRegistry, GQL, GqlQueryArgs, GqlQueryConfig, GqlQueryConfigWithoutMethod, GqlQueryMethod, GqlQueryTransport, GqlTransferOption, GqlTransformer, GqlVariablesType, HttpErrorEvent, HttpRequest, HttpRequestLoadingProgressState, HttpRequestLoadingState, HttpRequestResponseType, HttpRequestRetryState, HttpRequestSubtle, HttpRequestTransferCacheConfig, InactivityLogoutConfig, InactivityLogoutFeature, InfinityQueryConfig, InfinityQueryConfigType, InfinityQueryOf, InfinityQueryParamLocation, InsertFromConfig, InternalCreateGqlQueryCreatorOptions, InternalCreateQueryCreatorOptions, InternalQueryExecute, InternalSecureCreateGqlQueryCreatorOptions, InternalSecureCreateQueryCreatorOptions, InternalWebSocketRoom, JsonPath, LeaderInstanceCountChangeEventData, LeaderStatusChangeEventData, LegacyArgumentsOfQueryArgs, LegacyQueryPrepareFn, Loading, MapViolationsToFormErrorsOptions, Method, ObservableSignal, OptionalQueryFieldOptions, OverrideOp, PageParamCalculatorOptions, PagedQueryStack, PagedQueryStackDirection, PagedQueryStackExecuteOptions, PagedQueryStackResetOptions, PartialXhrState, PathParams, PathParamsType, PersistedQueryBody, PersistedQueryEntry, PersistedQueryEntryMeta, PersistentAuthConfig, PersistentAuthFeature, PollConfig, Prepared, Query, QueryArgs, QueryArgsOf, QueryArgsOfLegacyArguments, QueryAutoRefreshConfig, QueryBase, QueryClient, QueryClientDevtoolsOptions, QueryClientErrorPipelineFeature, QueryClientFeature, QueryClientFeatureContext, QueryClientFeatureFn, QueryClientMultiTabSyncFeature, QueryClientPersistenceFeature, QueryClientRef, QueryClientSubtle, QueryCollectionKeysOf, QueryCollectionOf, QueryCollectionWithNullableQuery, QueryConfig, QueryConfigBase, QueryConfigWithoutMethod, QueryContainerConfig, QueryContext, QueryCreator, QueryDataOf, QueryDependencies, QueryDevtoolsAuthQuery, QueryDevtoolsEntry, QueryDevtoolsEntryKind, QueryDevtoolsEntryMeta, QueryDevtoolsFault, QueryDevtoolsFaultTarget, QueryDevtoolsFeature, QueryDevtoolsFeatureDescriber, QueryDevtoolsFeatureDetail, QueryDevtoolsFormField, QueryDevtoolsFormHandle, QueryDevtoolsFormLinksHandle, QueryDevtoolsFormLinksRecorder, QueryDevtoolsOverrideEntry, QueryDevtoolsOverridesHandle, QueryDevtoolsOverridesRecorder, QueryDevtoolsPayload, QueryDevtoolsRegistrar, QueryDevtoolsRegistration, QueryDevtoolsResolvedFault, QueryDevtoolsRoutePart, QueryDevtoolsRun, QueryDevtoolsRunStatus, QueryDevtoolsStats, QueryDevtoolsStatsHandle, QueryDevtoolsStatsRecorder, QueryDirectiveContext, QueryDirectiveType, QueryEntityConfig, QueryErrorParser, QueryErrorResponse, QueryErrorResponseItem, QueryErrorResponseList, QueryErrorResponseSingle, QueryExecute, QueryExecuteArgs, QueryExecuteEventData, QueryExecuteOptions, QueryExecuteState, QueryExecutionState, QueryExecutionStateFailure, QueryExecutionStateLoading, QueryExecutionStateLoadingWithCachedResponse, QueryExecutionStateLoadingWithNoResponse, QueryExecutionStateSuccess, QueryFailureEventData, QueryFeature, QueryFeatureContext, QueryFeatureFlags, QueryFeatureFn, QueryFieldConfig, QueryFieldDef, QueryFieldOptions, QueryFieldValue, QueryFilterConfig, QueryFormBranch, QueryFormChange, QueryFormFields, QueryFormGroup, QueryFormGroupControls, QueryFormModel, QueryFormObserveOptions, QueryFormOf, QueryFormOptions, QueryFormSignals, QueryFormSignalsObserveOptions, QueryFormSignalsWriteOptions, QueryFormValue, QueryFormValueEvent, QueryFormWriteOptions, QueryInvalidationCandidate, QueryInvalidationFilterFn, QueryInvalidationOptions, QueryKey, QueryKeyLockHold, QueryKeyLockManager, QueryKeyLockState, QueryMethod, QueryMockConfig, QueryMultiTabSyncConfig, QueryOf, QueryParams, QueryParamsType, QueryPersistenceAdapter, QueryPersistenceCandidate, QueryPersistenceConfig, QueryPersistenceEngine, QueryPrepareFn, QueryRefreshCause, QueryRegistry, QueryRegistryEntry, QueryRepository, QueryRepositoryCacheEntry, QueryRepositoryDependencies, QueryRepositoryEvent, QueryRepositoryItem, QueryRepositoryRefreshFilterFn, QueryRepositoryRequestOptions, QueryRepositorySubtle, QueryResponseOf, QueryRouteOf, QuerySequence, QuerySequenceResult, QuerySequenceStatus, QuerySequenceStepArgs, QuerySnapshot, QueryStack, QueryStackSubtle, QueryState, QueryStateMeta, QueryStateResponseOf, QueryStateSignal, QueryStateSubtle, QueryStateSuccessMeta, QueryStoreIdOf, QueryStoreOf, QuerySubtle, QuerySuccessEventData, QuerySyncEngine, QuerySyncEnvelope, QuerySyncInvalidateMessage, QuerySyncMessage, QuerySyncMessageListener, QuerySyncMutation, QuerySyncMutationFilterFn, QuerySyncMutationMessage, QuerySyncRefreshCandidate, QuerySyncRefreshOnMutationConfig, QuerySyncResponseMessage, QuerySyncTransport, QueryTrigger, RawResponseType, ReadonlyQuery, RemoveFromConfig, RequestArgs, RequestConfig, RequestError, RequestEvent, RequestHeaders, RequestHeadersMethodMap, RequestHttpEvent, RequestProgress, RequestRetryFn, RequestRetryFnConfig, RequestRetryFnResult, RequiresTransform, ResetExecuteStateOptions, ResetPageOnErrorOperatorConfig, ResponseType, RestQueryConfig, RouteString, RouteType, RunQueryCreator, RunQueryExecuteOptions, SecureExecuteFactoryOptions, ServerValidationError, ServerViolationValidationError, SetupQueryDependenciesOptions, SetupQueryStateOptions, ShouldRetryRequestFn, ShouldRetryRequestOptions, ShouldRetryRequestResult, SocketMessageView, Sort, SortDirection, Success, SymfonyError, SymfonyErrorTrace, TokenExpirationWarningConfig, TokenExpirationWarningFeature, TokenRefreshEventData, TokenRefreshQueryBuilder, TokenRefreshQueryConfig, TokenResponse, TokenRevocationConfig, TokenRevocationFeature, TotalPagesExtractorOptions, TrackingConfig, TrackingEventDataMap, TrackingEventHandler, TrackingEventName, TrackingFeature, TransformedGqlQuery, V2CacheAdapterFn, V2PrepareArgsOf, V2QueryArgsOf, V2QueryClientConfig, V2QueryConfig, V2QueryState, V2RouteString, V2RouteType, ValidateWithQueryConfig, ValidateWithV2QueryConfig, WebSocketClient, WebSocketClientIo, WebSocketClientIoOptions, WebSocketClientResult, WebSocketClientSocket, WebSocketClientSubtle, WebSocketDevtoolsHandle, WebSocketDevtoolsMessage, WebSocketRoom, WithAutoRefreshFeatureOptions, WithBody, WithConfig, WithErrorHandlingFeatureOptions, WithHeaders, WithInjector, WithLegacyConfig, WithLoggingFeatureOptions, WithMock, WithPageResetOnErrorFeatureOptions, WithPathParams, WithPollingFeatureOptions, WithQueryParams, WithResponseUpdateFeatureFnData, WithResponseUpdateFeatureOptions, WithSuccessHandlingFeatureOptions, WithVariables };
7622
+ export { AuthBearerRefreshStrategy, BasicAuthProvider, BearerAuthFeatureType, BooleanArrayQueryField, CLEAR_QUERY_ARGS, CustomHeaderAuthProvider, DEFAULT_KEEP_UNUSED_FOR, DEFAULT_QUERY_PERSISTENCE_MAX_AGE, DEFAULT_QUERY_PERSISTENCE_MAX_ENTRIES, DEFAULT_QUERY_PERSISTENCE_VERSION, DEFAULT_QUERY_PERSISTENCE_WRITE_DELAY, DateArrayQueryField, DateQueryField, EMPTY_QUERY_DEVTOOLS_FAULT, EntityStore, IGNORED_FILTER_COUNT_FIELDS, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, LegacyQuery, LegacyQueryCreator, MAX_QUERY_DEVTOOLS_TOMBSTONES, MAX_UNUSED_ENTRIES, NumberArrayQueryField, ParseHttpErrorCodeToMessageDePipe, ParseHttpErrorCodeToMessageEnPipe, ParseHttpErrorCodeToTitleDePipe, ParseHttpErrorCodeToTitleEnPipe, QUERY_CLIENT_DEVTOOLS_TOKEN, QUERY_DEVTOOLS_FAULT_STATUSES, QUERY_PERSISTENCE_STORE_VERSION, QUERY_SYNC_PROTOCOL_VERSION, QueryClientFeatureType, QueryDevtoolsComponent, QueryDirective, QueryFeatureType, QueryField, QueryForm, QueryRuntimeErrorCode, QueryShortNamePipe, QueryStateType, QueryStore, SERVER_ERROR_KIND, SERVER_VIOLATION_ERROR_KIND, SPEED_BUFFER_TIME_IN_MS, SearchQueryField, SortQueryField, StringArrayQueryField, V2BearerAuthProvider, V2Query, V2QueryClient, V2QueryCreator, addQueryContainerHandling, applyQueryDevtoolsOverrides, applyQueryFeatures, authExtractTokensResponseMissingAccessToken, authExtractTokensResponseMissingRefreshToken, authExtractTokensResponseNotObject, authProviderFeatureUsedMultipleTimes, booleanArrayQueryField, buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, circularQueryDependency, circularQueryDependencyChecker, clearQueryDevtoolsFaults, clearQueryDevtoolsTombstones, collectLeafPaths, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, contentfulGqlLikePaginationAdapter, createBaseQuery, createBaseQueryCreator, createBearerAuthProvider, createDeleteQuery, createExecuteFn, createGetQuery, createGqlExecuteFn, createGqlMutationViaGet, createGqlMutationViaPost, createGqlQuery, createGqlQueryCreator, createGqlQueryViaGet, createGqlQueryViaPost, createHttpRequest, createIndexedDbQueryPersistenceAdapter, createInfinityQueryConfig, createLegacyQueryCreator, createNoopQueryPersistenceAdapter, createPagedQueryStack, createPatchQuery, createPersistentAuthFeature, createPostQuery, createPutQuery, createQuery, createQueryClient, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, createQueryContext, createQueryCreator, createQueryErrorResponse, createQueryFeature, createQueryInvalidationFilter, createQueryKeyLockManager, createQueryObject, createQueryPersistenceEngine, createQueryRepository, createQuerySnapshotFn, createQueryStack, createQuerySyncEngine, createQuerySyncTransport, createSecureDeleteQuery, createSecureExecuteFactory, createSecureExecuteFn, createSecureGetQuery, createSecureGqlExecuteFn, createSecureGqlMutationViaGet, createSecureGqlMutationViaPost, createSecureGqlQuery, createSecureGqlQueryCreator, createSecureGqlQueryViaGet, createSecureGqlQueryViaPost, createSecurePatchQuery, createSecurePostQuery, createSecurePutQuery, createSecureQuery, createSecureQueryCreator, createTrackingFeature, createWebSocketClient, dateArrayQueryField, dateQueryField, decryptBearer, deepFreeze, def, defineQueryForm, detectContentTypeHeader, detectPaginationShape, dynLikePaginationAdapter, effectComputed, emptyQueryArgs, ethletePaginationAdapter, executeUntilSettled, extractExpiresInSeconds, extractFormViolations, extractHtmlErrorMessage, extractQuery, fakePaginationAdapter, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, generateQueryDevtoolsNumberPreset, generateQueryDevtoolsStringPreset, getDefaultHeaders, getQueryFeatureUsage, getResponseUrl, ggLikePaginationAdapter, gql, gqlDataPropertyMissingInResponse, hasHeader, hasQueryDevtoolsOverridesAtPath, htmlErrorPayload, htmlQueryErrorParser, ignoreAutoRefresh, injectInfinityQueryResponseDelay, injectQueryContext, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, invalidStateInsideSecureExecuteFactory, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCreateGqlQueryOptions, isCustomHeaderAuthProvider, isDateShapedLeaf, isEmptyString, isGqlQueryConfig, isHtmlErrorPayload, isLegacyQuery, isNaN, isPageOutOfRangeError, isQuery, isQueryCollection, isQueryDevtoolsFaultArmed, isQueryErrorResponse, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, isUnderInvalidatedUrl, legacyPrepareWithoutInjectionContext, mapToPaginated, mapViolationsToFormErrors, maybeExecute, measureQueryDevtoolsPayload, mergeHeaders, nestedEffect, numberArrayQueryField, pagedQueryStackNextPageCalledWithoutPreviousPage, pagedQueryStackPageBiggerThanTotalPages, pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleDe, parseHttpErrorCodeToTitleEn, pathParamsMissingInRouteFunctionError, provideInfinityQueryResponseDelay, provideLegacyPrepareFallback, provideQueryClientForDevtools, provideQueryDevtools, queryArrayComputed, queryClientFeatureUsedMultipleTimes, queryComputed, queryComputedTillTruthy, queryDevtoolsEntries, queryDevtoolsFaults, queryDevtoolsResponseHistory, queryErrorMessage, queryErrorMessages, queryExecute, queryFeatureUsedMultipleTimes, queryField, querySequence, querySequenceAlreadyRunning, queryStackTotalQueriesAndExpectedQueriesMismatch, queryStackWithArgsUsed, queryStackWithResponseUpdateUsed, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, registerQueryErrorParser, removeFrom, request, resetExecuteState, resetPageOnError, resolveInvalidationUrl, searchQueryField, serializeBody, setDefaultQueryRetryFn, setQueryDevtoolsFault, setupQueryDependencies, setupQueryExecuteState, setupQueryState, shouldAutoExecuteGqlQuery, shouldAutoExecuteQuery, shouldCacheQuery, shouldRetryRequest, silenceMissingWithArgsFeatureErrorUsedButWithArgsPresent, skipPaginationPageParamCalculator, smartDuplicateArrayItem, snapshotQueryDevtoolsHandle, sortQueryField, splitQueryConfig, stringArrayQueryField, stringifyQueryRouteParts, sumQueryDevtoolsStats, switchQueryCollectionState, switchQueryState, symfonyQueryErrorParser, takeUntilResponse, toQuerySignal, toQuerySubject, tokensNotAvailableInsideAuthAndExec, tombstoneOf, transformArrayResponse, transformExecStateToQueryState, transformGql, transformMethod, transformPaginatedResponse, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray, uncacheableRequestHasAllowCacheParam, uncacheableRequestHasCacheKeyParam, unwrapQuerySyncMessage, v2BuildQueryCacheKey, v2ExtractExpiresInSeconds, v2ShouldCacheQuery, v2ShouldRetryRequest, validateWithQuery, validateWithV2Query, withArgs, withArgsQueryFeatureMissingButRouteIsFunction, withAuthenticationQuery, withAutoRefresh, withAutoRefreshUsedInManualQuery, withAutoRefreshUsedOnUnsupportedHttpMethod, withBearerAuthMultiTabSync, withDefaultRetry, withErrorHandling, withEthleteApiErrors, withHtmlErrorParsing, withInactivityLogout, withLogging, withMultiTabSync, withPageResetOnError, withPersistentAuth, withPolling, withPollingUsedOnUnsupportedHttpMethod, withQueryPersistence, withRefreshQuery, withResponseUpdate, withSuccessHandling, withSymfonyErrors, withTokenExpirationWarning, withTokenRevocation, withTracking, wrapAsObservableSignal, wrapQuerySyncMessage };
7623
+ export type { AnyBearerAuthProvider, AnyCreateBearerAuthProviderResult, AnyCreateGqlQueryCreatorOptions, AnyCreateQueryClientResult, AnyGqlQueryConfig, AnyInfinityQuery, AnyInfinityQueryConfig, AnyLegacyQuery, AnyLegacyQueryCreator, AnyNewQuery, AnyPagedQueryStack, AnyQueryBuilder, AnyQueryClient, AnyQueryCollection, AnyQueryCollectionData, AnyQueryCollectionResponse, AnyQueryCreator, AnyQueryCreatorCollection, AnyQueryForm, AnyQuerySnapshot, AnyQueryStack, AnyRestQueryConfig, AnyRoute, AnyV2Query, AnyV2QueryCreator, AnyWebSocketClient, AppendItemsLocation, ApplyExternalResponseOptions, ApplyPersistedResponseOptions, AuthProvider, AuthProviderBasicConfig, AuthProviderBearerConfig, AuthProviderCustomHeaderConfig, AuthQueryBuilder, AuthQueryConfig, BaseArguments, BaseQueryCreatorFactoryOptions, BaseQueryCreatorOptions, BaseQueryCreatorOptionsSubtle, BearerAuthExecutionState, BearerAuthExecutionStateError, BearerAuthExecutionStateLoading, BearerAuthExecutionStateLogout, BearerAuthExecutionStateSuccess, BearerAuthExecutionStateTokenSeed, BearerAuthFeature, BearerAuthMultiTabSyncConfig, BearerAuthMultiTabSyncFeature, BearerAuthProvider, BearerAuthProviderEarlySetup, BearerAuthProviderEarlySetupContext, BearerAuthProviderEarlySetupResult, BearerAuthProviderFeatureContext, BearerAuthProviderOf, BearerAuthProviderQueryContext, BearerAuthProviderRef, BearerAuthProviderTokens, BearerAuthRefreshCoordination, BearerAuthSessionEndCause, BearerAuthSessionStatus, BearerRefreshConfig, BodyType, BuildQueryStringConfig, CacheAdapterFn, Cancelled, ClassValidatorError, ClearQueryArgs, ConstructQuery, CreateBaseQueryOptions, CreateBearerAuthProviderConfig, CreateGqlQueryCreatorOptions, CreateGqlQueryExecuteOptions, CreateGqlQueryOptions, CreateHttpRequestDependencies, CreateHttpRequestOptions, CreateIndexedDbQueryPersistenceAdapterOptions, CreateLegacyQueryCreatorOptions, CreateLegacyQueryOptions, CreatePagedQueryStackOptions, CreateQueryClientConfigOptions, CreateQueryCreatorOptions, CreateQueryExecuteOptions, CreateQueryObjectOptions, CreateQueryOptions, CreateQueryPersistenceEngineOptions, CreateQueryRepositoryConfig, CreateQuerySnapshotOptions, CreateQueryStackOptions, CreateQuerySyncEngineOptions, CreateSecureGqlQueryExecuteOptions, CreateSecureGqlQueryOptions, CreateSecureQueryExecuteOptions, CreateSecureQueryOptions, CreateWebSocketClientConfigOptions, CreateWebSocketClientTransport, DefineQueryFormConfig, DescribableFeature, DestroyCleanupCallback, EmptyObject, EntityGetParams, EntityIdParams, EntityKey, EntitySetParams, EntityStoreConfig, ExecuteFactory, ExecuteQueryOptions, ExtractQueryArgs, ExtractQueryKey, Failure, FeatureRegistry, GQL, GqlQueryArgs, GqlQueryConfig, GqlQueryConfigWithoutMethod, GqlQueryMethod, GqlQueryTransport, GqlTransferOption, GqlTransformer, GqlVariablesType, HttpErrorEvent, HttpRequest, HttpRequestLoadingProgressState, HttpRequestLoadingState, HttpRequestResponseType, HttpRequestRetryState, HttpRequestSubtle, HttpRequestTransferCacheConfig, InactivityLogoutConfig, InactivityLogoutFeature, InfinityQueryConfig, InfinityQueryConfigType, InfinityQueryOf, InfinityQueryParamLocation, InsertFromConfig, InternalCreateGqlQueryCreatorOptions, InternalCreateQueryCreatorOptions, InternalQueryExecute, InternalSecureCreateGqlQueryCreatorOptions, InternalSecureCreateQueryCreatorOptions, InternalWebSocketRoom, JsonPath, LeaderInstanceCountChangeEventData, LeaderStatusChangeEventData, LegacyArgumentsOfQueryArgs, LegacyQueryPrepareFn, Loading, LogoutEventData, MapViolationsToFormErrorsOptions, Method, ObservableSignal, OptionalQueryFieldOptions, OverrideOp, PageParamCalculatorOptions, PagedQueryStack, PagedQueryStackDirection, PagedQueryStackExecuteOptions, PagedQueryStackResetOptions, PartialXhrState, PathParams, PathParamsType, PersistedQueryBody, PersistedQueryEntry, PersistedQueryEntryMeta, PersistentAuthConfig, PersistentAuthFeature, PollConfig, Prepared, Query, QueryArgs, QueryArgsOf, QueryArgsOfLegacyArguments, QueryAutoRefreshConfig, QueryBase, QueryClient, QueryClientDevtoolsOptions, QueryClientErrorPipelineFeature, QueryClientFeature, QueryClientFeatureContext, QueryClientFeatureFn, QueryClientMultiTabSyncFeature, QueryClientPersistenceFeature, QueryClientRef, QueryClientSubtle, QueryCollectionKeysOf, QueryCollectionOf, QueryCollectionWithNullableQuery, QueryConfig, QueryConfigBase, QueryConfigWithoutMethod, QueryContainerConfig, QueryContext, QueryCreator, QueryDataOf, QueryDependencies, QueryDevtoolsAuthQuery, QueryDevtoolsEntry, QueryDevtoolsEntryKind, QueryDevtoolsEntryMeta, QueryDevtoolsFault, QueryDevtoolsFaultTarget, QueryDevtoolsFeature, QueryDevtoolsFeatureDescriber, QueryDevtoolsFeatureDetail, QueryDevtoolsFormField, QueryDevtoolsFormHandle, QueryDevtoolsFormLinksHandle, QueryDevtoolsFormLinksRecorder, QueryDevtoolsOptions, QueryDevtoolsOverrideEntry, QueryDevtoolsOverridesHandle, QueryDevtoolsOverridesRecorder, QueryDevtoolsPayload, QueryDevtoolsRegistrar, QueryDevtoolsRegistration, QueryDevtoolsResolvedFault, QueryDevtoolsRoutePart, QueryDevtoolsRun, QueryDevtoolsRunError, QueryDevtoolsRunStatus, QueryDevtoolsStats, QueryDevtoolsStatsHandle, QueryDevtoolsStatsRecorder, QueryDirectiveContext, QueryDirectiveType, QueryEntityConfig, QueryErrorParser, QueryErrorResponse, QueryErrorResponseItem, QueryErrorResponseList, QueryErrorResponseSingle, QueryExecute, QueryExecuteArgs, QueryExecuteEventData, QueryExecuteOptions, QueryExecuteState, QueryExecutionState, QueryExecutionStateFailure, QueryExecutionStateLoading, QueryExecutionStateLoadingWithCachedResponse, QueryExecutionStateLoadingWithNoResponse, QueryExecutionStateSuccess, QueryFailureEventData, QueryFeature, QueryFeatureContext, QueryFeatureFlags, QueryFeatureFn, QueryFieldConfig, QueryFieldDef, QueryFieldOptions, QueryFieldValue, QueryFilterConfig, QueryFormBranch, QueryFormChange, QueryFormFields, QueryFormGroup, QueryFormGroupControls, QueryFormModel, QueryFormObserveOptions, QueryFormOf, QueryFormOptions, QueryFormSignals, QueryFormSignalsObserveOptions, QueryFormSignalsWriteOptions, QueryFormValue, QueryFormValueEvent, QueryFormWriteOptions, QueryInvalidationCandidate, QueryInvalidationFilterFn, QueryInvalidationOptions, QueryKey, QueryKeyLockHold, QueryKeyLockManager, QueryKeyLockState, QueryMethod, QueryMockConfig, QueryMultiTabSyncConfig, QueryOf, QueryParams, QueryParamsType, QueryPersistenceAdapter, QueryPersistenceCandidate, QueryPersistenceConfig, QueryPersistenceEngine, QueryPrepareFn, QueryRefreshCause, QueryRegistry, QueryRegistryEntry, QueryRepository, QueryRepositoryCacheEntry, QueryRepositoryDependencies, QueryRepositoryEntryDestroyedCause, QueryRepositoryEvent, QueryRepositoryItem, QueryRepositoryRefreshFilterFn, QueryRepositoryRequestOptions, QueryRepositorySubtle, QueryResponseOf, QueryRouteOf, QuerySequence, QuerySequenceResult, QuerySequenceStatus, QuerySequenceStepArgs, QuerySnapshot, QueryStack, QueryStackSubtle, QueryState, QueryStateMeta, QueryStateResponseOf, QueryStateSignal, QueryStateSubtle, QueryStateSuccessMeta, QueryStoreIdOf, QueryStoreOf, QuerySubtle, QuerySuccessEventData, QuerySyncEngine, QuerySyncEnvelope, QuerySyncInvalidateMessage, QuerySyncMessage, QuerySyncMessageListener, QuerySyncMutation, QuerySyncMutationFilterFn, QuerySyncMutationMessage, QuerySyncRefreshCandidate, QuerySyncRefreshOnMutationConfig, QuerySyncResponseMessage, QuerySyncTransport, QueryTrigger, RawResponseType, ReadonlyQuery, RefreshFailure, RemoveFromConfig, RequestArgs, RequestConfig, RequestError, RequestEvent, RequestHeaders, RequestHeadersMethodMap, RequestHttpEvent, RequestProgress, RequestRetryFn, RequestRetryFnConfig, RequestRetryFnResult, RequiresTransform, ResetExecuteStateOptions, ResetPageOnErrorOperatorConfig, ResponseType, RestQueryConfig, RouteString, RouteType, RunQueryCreator, RunQueryExecuteOptions, SecureExecuteFactoryOptions, ServerValidationError, ServerViolationValidationError, SetupQueryDependenciesOptions, SetupQueryStateOptions, ShouldRetryRequestFn, ShouldRetryRequestOptions, ShouldRetryRequestResult, SocketMessageView, Sort, SortDirection, Success, SymfonyError, SymfonyErrorTrace, TokenExpirationWarningConfig, TokenExpirationWarningFeature, TokenRefreshEventData, TokenRefreshQueryBuilder, TokenRefreshQueryConfig, TokenResponse, TokenRevocationConfig, TokenRevocationFeature, TotalPagesExtractorOptions, TrackingConfig, TrackingEventDataMap, TrackingEventHandler, TrackingEventName, TrackingFeature, TransformedGqlQuery, V2CacheAdapterFn, V2PrepareArgsOf, V2QueryArgsOf, V2QueryClientConfig, V2QueryConfig, V2QueryState, V2RouteString, V2RouteType, ValidateWithQueryConfig, ValidateWithV2QueryConfig, WebSocketClient, WebSocketClientIo, WebSocketClientIoOptions, WebSocketClientResult, WebSocketClientSocket, WebSocketClientSubtle, WebSocketDevtoolsHandle, WebSocketDevtoolsMessage, WebSocketRoom, WithAutoRefreshFeatureOptions, WithBody, WithConfig, WithErrorHandlingFeatureOptions, WithHeaders, WithInjector, WithLegacyConfig, WithLoggingFeatureOptions, WithMock, WithPageResetOnErrorFeatureOptions, WithPathParams, WithPollingFeatureOptions, WithQueryParams, WithResponseUpdateFeatureFnData, WithResponseUpdateFeatureOptions, WithSuccessHandlingFeatureOptions, WithVariables };