@tanstack/query-core 5.62.8 → 5.62.12

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.
Files changed (83) hide show
  1. package/build/legacy/{hydration-DiTAi-4H.d.ts → hydration-ClXcjjG9.d.ts} +2 -0
  2. package/build/legacy/{hydration-BWO9yDiJ.d.cts → hydration-DWTP6RQt.d.cts} +2 -0
  3. package/build/legacy/hydration.d.cts +1 -1
  4. package/build/legacy/hydration.d.ts +1 -1
  5. package/build/legacy/index.d.cts +1 -1
  6. package/build/legacy/index.d.ts +1 -1
  7. package/build/legacy/infiniteQueryBehavior.d.cts +1 -1
  8. package/build/legacy/infiniteQueryBehavior.d.ts +1 -1
  9. package/build/legacy/infiniteQueryObserver.d.cts +1 -1
  10. package/build/legacy/infiniteQueryObserver.d.ts +1 -1
  11. package/build/legacy/mutation.d.cts +1 -1
  12. package/build/legacy/mutation.d.ts +1 -1
  13. package/build/legacy/mutationCache.cjs +51 -24
  14. package/build/legacy/mutationCache.cjs.map +1 -1
  15. package/build/legacy/mutationCache.d.cts +1 -1
  16. package/build/legacy/mutationCache.d.ts +1 -1
  17. package/build/legacy/mutationCache.js +51 -24
  18. package/build/legacy/mutationCache.js.map +1 -1
  19. package/build/legacy/mutationObserver.d.cts +1 -1
  20. package/build/legacy/mutationObserver.d.ts +1 -1
  21. package/build/legacy/queriesObserver.d.cts +1 -1
  22. package/build/legacy/queriesObserver.d.ts +1 -1
  23. package/build/legacy/query.d.cts +1 -1
  24. package/build/legacy/query.d.ts +1 -1
  25. package/build/legacy/queryCache.d.cts +1 -1
  26. package/build/legacy/queryCache.d.ts +1 -1
  27. package/build/legacy/queryClient.d.cts +1 -1
  28. package/build/legacy/queryClient.d.ts +1 -1
  29. package/build/legacy/queryObserver.d.cts +1 -1
  30. package/build/legacy/queryObserver.d.ts +1 -1
  31. package/build/legacy/retryer.d.cts +1 -1
  32. package/build/legacy/retryer.d.ts +1 -1
  33. package/build/legacy/types.cjs +18 -0
  34. package/build/legacy/types.cjs.map +1 -1
  35. package/build/legacy/types.d.cts +1 -1
  36. package/build/legacy/types.d.ts +1 -1
  37. package/build/legacy/types.js +11 -0
  38. package/build/legacy/types.js.map +1 -1
  39. package/build/legacy/utils.d.cts +1 -1
  40. package/build/legacy/utils.d.ts +1 -1
  41. package/build/modern/{hydration-DiTAi-4H.d.ts → hydration-ClXcjjG9.d.ts} +2 -0
  42. package/build/modern/{hydration-BWO9yDiJ.d.cts → hydration-DWTP6RQt.d.cts} +2 -0
  43. package/build/modern/hydration.d.cts +1 -1
  44. package/build/modern/hydration.d.ts +1 -1
  45. package/build/modern/index.d.cts +1 -1
  46. package/build/modern/index.d.ts +1 -1
  47. package/build/modern/infiniteQueryBehavior.d.cts +1 -1
  48. package/build/modern/infiniteQueryBehavior.d.ts +1 -1
  49. package/build/modern/infiniteQueryObserver.d.cts +1 -1
  50. package/build/modern/infiniteQueryObserver.d.ts +1 -1
  51. package/build/modern/mutation.d.cts +1 -1
  52. package/build/modern/mutation.d.ts +1 -1
  53. package/build/modern/mutationCache.cjs +49 -21
  54. package/build/modern/mutationCache.cjs.map +1 -1
  55. package/build/modern/mutationCache.d.cts +1 -1
  56. package/build/modern/mutationCache.d.ts +1 -1
  57. package/build/modern/mutationCache.js +49 -21
  58. package/build/modern/mutationCache.js.map +1 -1
  59. package/build/modern/mutationObserver.d.cts +1 -1
  60. package/build/modern/mutationObserver.d.ts +1 -1
  61. package/build/modern/queriesObserver.d.cts +1 -1
  62. package/build/modern/queriesObserver.d.ts +1 -1
  63. package/build/modern/query.d.cts +1 -1
  64. package/build/modern/query.d.ts +1 -1
  65. package/build/modern/queryCache.d.cts +1 -1
  66. package/build/modern/queryCache.d.ts +1 -1
  67. package/build/modern/queryClient.d.cts +1 -1
  68. package/build/modern/queryClient.d.ts +1 -1
  69. package/build/modern/queryObserver.d.cts +1 -1
  70. package/build/modern/queryObserver.d.ts +1 -1
  71. package/build/modern/retryer.d.cts +1 -1
  72. package/build/modern/retryer.d.ts +1 -1
  73. package/build/modern/types.cjs +18 -0
  74. package/build/modern/types.cjs.map +1 -1
  75. package/build/modern/types.d.cts +1 -1
  76. package/build/modern/types.d.ts +1 -1
  77. package/build/modern/types.js +9 -0
  78. package/build/modern/types.js.map +1 -1
  79. package/build/modern/utils.d.cts +1 -1
  80. package/build/modern/utils.d.ts +1 -1
  81. package/package.json +1 -1
  82. package/src/mutationCache.ts +58 -31
  83. package/src/types.ts +5 -3
@@ -516,7 +516,9 @@ type DefaultError = Register extends {
516
516
  } ? TError : Error;
517
517
  type QueryKey = ReadonlyArray<unknown>;
518
518
  declare const dataTagSymbol: unique symbol;
519
+ type dataTagSymbol = typeof dataTagSymbol;
519
520
  declare const dataTagErrorSymbol: unique symbol;
521
+ type dataTagErrorSymbol = typeof dataTagErrorSymbol;
520
522
  declare const unsetMarker: unique symbol;
521
523
  type UnsetMarker = typeof unsetMarker;
522
524
  type AnyDataTag = {
@@ -516,7 +516,9 @@ type DefaultError = Register extends {
516
516
  } ? TError : Error;
517
517
  type QueryKey = ReadonlyArray<unknown>;
518
518
  declare const dataTagSymbol: unique symbol;
519
+ type dataTagSymbol = typeof dataTagSymbol;
519
520
  declare const dataTagErrorSymbol: unique symbol;
521
+ type dataTagErrorSymbol = typeof dataTagErrorSymbol;
520
522
  declare const unsetMarker: unique symbol;
521
523
  type UnsetMarker = typeof unsetMarker;
522
524
  type AnyDataTag = {
@@ -1,3 +1,3 @@
1
- export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-BWO9yDiJ.cjs';
1
+ export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-DWTP6RQt.cjs';
2
2
  import './removable.cjs';
3
3
  import './subscribable.cjs';
@@ -1,3 +1,3 @@
1
- export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-DiTAi-4H.js';
1
+ export { D as DehydrateOptions, x as DehydratedState, H as HydrateOptions, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, o as hydrate } from './hydration-ClXcjjG9.js';
2
2
  import './removable.js';
3
3
  import './subscribable.js';
@@ -1,4 +1,4 @@
1
- export { I as AnyDataTag, aZ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, aY as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aG as DefinedInfiniteQueryObserverResult, ay as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aA as InfiniteQueryObserverBaseResult, aD as InfiniteQueryObserverLoadingErrorResult, aC as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aB as InfiniteQueryObserverPendingResult, aE as InfiniteQueryObserverRefetchErrorResult, aH as InfiniteQueryObserverResult, aF as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aQ as MutateFunction, aP as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aM as MutationFunction, aI as MutationKey, aL as MutationMeta, e as MutationObserver, aR as MutationObserverBaseResult, aU as MutationObserverErrorResult, aS as MutationObserverIdleResult, aT as MutationObserverLoadingResult, aO as MutationObserverOptions, aW as MutationObserverResult, aV as MutationObserverSuccessResult, aN as MutationOptions, aK as MutationScope, v as MutationState, aJ as MutationStatus, a2 as NetworkMode, N as NoInfer, b0 as NotifyEvent, a$ as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aX as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, aw as QueryObserverRefetchErrorResult, az as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, a_ as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken, F as unsetMarker } from './hydration-BWO9yDiJ.cjs';
1
+ export { I as AnyDataTag, aZ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, aY as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aG as DefinedInfiniteQueryObserverResult, ay as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aA as InfiniteQueryObserverBaseResult, aD as InfiniteQueryObserverLoadingErrorResult, aC as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aB as InfiniteQueryObserverPendingResult, aE as InfiniteQueryObserverRefetchErrorResult, aH as InfiniteQueryObserverResult, aF as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aQ as MutateFunction, aP as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aM as MutationFunction, aI as MutationKey, aL as MutationMeta, e as MutationObserver, aR as MutationObserverBaseResult, aU as MutationObserverErrorResult, aS as MutationObserverIdleResult, aT as MutationObserverLoadingResult, aO as MutationObserverOptions, aW as MutationObserverResult, aV as MutationObserverSuccessResult, aN as MutationOptions, aK as MutationScope, v as MutationState, aJ as MutationStatus, a2 as NetworkMode, N as NoInfer, b0 as NotifyEvent, a$ as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aX as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, aw as QueryObserverRefetchErrorResult, az as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, a_ as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken, F as unsetMarker } from './hydration-DWTP6RQt.cjs';
2
2
  export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.cjs';
3
3
  export { InfiniteQueryObserver } from './infiniteQueryObserver.cjs';
4
4
  export { notifyManager } from './notifyManager.cjs';
@@ -1,4 +1,4 @@
1
- export { I as AnyDataTag, aZ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, aY as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aG as DefinedInfiniteQueryObserverResult, ay as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aA as InfiniteQueryObserverBaseResult, aD as InfiniteQueryObserverLoadingErrorResult, aC as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aB as InfiniteQueryObserverPendingResult, aE as InfiniteQueryObserverRefetchErrorResult, aH as InfiniteQueryObserverResult, aF as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aQ as MutateFunction, aP as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aM as MutationFunction, aI as MutationKey, aL as MutationMeta, e as MutationObserver, aR as MutationObserverBaseResult, aU as MutationObserverErrorResult, aS as MutationObserverIdleResult, aT as MutationObserverLoadingResult, aO as MutationObserverOptions, aW as MutationObserverResult, aV as MutationObserverSuccessResult, aN as MutationOptions, aK as MutationScope, v as MutationState, aJ as MutationStatus, a2 as NetworkMode, N as NoInfer, b0 as NotifyEvent, a$ as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aX as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, aw as QueryObserverRefetchErrorResult, az as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, a_ as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken, F as unsetMarker } from './hydration-DiTAi-4H.js';
1
+ export { I as AnyDataTag, aZ as CancelOptions, C as CancelledError, J as DataTag, z as DefaultError, aY as DefaultOptions, ad as DefaultedInfiniteQueryObserverOptions, ab as DefaultedQueryObserverOptions, aG as DefinedInfiniteQueryObserverResult, ay as DefinedQueryObserverResult, D as DehydrateOptions, x as DehydratedState, P as Enabled, ag as EnsureInfiniteQueryDataOptions, af as EnsureQueryDataOptions, ah as FetchInfiniteQueryOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, ae as FetchQueryOptions, ar as FetchStatus, $ as GetNextPageParamFunction, _ as GetPreviousPageParamFunction, H as HydrateOptions, a0 as InfiniteData, aA as InfiniteQueryObserverBaseResult, aD as InfiniteQueryObserverLoadingErrorResult, aC as InfiniteQueryObserverLoadingResult, ac as InfiniteQueryObserverOptions, aB as InfiniteQueryObserverPendingResult, aE as InfiniteQueryObserverRefetchErrorResult, aH as InfiniteQueryObserverResult, aF as InfiniteQueryObserverSuccessResult, a6 as InfiniteQueryPageParamsOptions, W as InitialDataFunction, a5 as InitialPageParam, am as InvalidateOptions, ak as InvalidateQueryFilters, aQ as MutateFunction, aP as MutateOptions, w as Mutation, M as MutationCache, d as MutationCacheNotifyEvent, g as MutationFilters, aM as MutationFunction, aI as MutationKey, aL as MutationMeta, e as MutationObserver, aR as MutationObserverBaseResult, aU as MutationObserverErrorResult, aS as MutationObserverIdleResult, aT as MutationObserverLoadingResult, aO as MutationObserverOptions, aW as MutationObserverResult, aV as MutationObserverSuccessResult, aN as MutationOptions, aK as MutationScope, v as MutationState, aJ as MutationStatus, a2 as NetworkMode, N as NoInfer, b0 as NotifyEvent, a$ as NotifyEventType, a3 as NotifyOnChangeProps, O as OmitKeyof, aa as Optional, y as Override, X as PlaceholderDataFunction, Y as QueriesPlaceholderDataFunction, u as Query, Q as QueryCache, a as QueryCacheNotifyEvent, b as QueryClient, aX as QueryClientConfig, j as QueryFilters, K as QueryFunction, V as QueryFunctionContext, A as QueryKey, Z as QueryKeyHashFunction, a1 as QueryMeta, c as QueryObserver, as as QueryObserverBaseResult, av as QueryObserverLoadingErrorResult, au as QueryObserverLoadingResult, a8 as QueryObserverOptions, at as QueryObserverPendingResult, aw as QueryObserverRefetchErrorResult, az as QueryObserverResult, ax as QueryObserverSuccessResult, a4 as QueryOptions, T as QueryPersister, t as QueryState, aq as QueryStatus, aj as RefetchOptions, al as RefetchQueryFilters, R as Register, an as ResetOptions, ai as ResultOptions, a_ as SetDataOptions, S as SkipToken, L as StaleTime, a7 as ThrowOnError, G as UnsetMarker, U as Updater, a9 as WithRequired, E as dataTagErrorSymbol, B as dataTagSymbol, q as defaultShouldDehydrateMutation, p as defaultShouldDehydrateQuery, n as dehydrate, h as hashKey, o as hydrate, l as isCancelledError, i as isServer, k as keepPreviousData, f as matchMutation, m as matchQuery, r as replaceEqualDeep, s as skipToken, F as unsetMarker } from './hydration-ClXcjjG9.js';
2
2
  export { QueriesObserver, QueriesObserverOptions } from './queriesObserver.js';
3
3
  export { InfiniteQueryObserver } from './infiniteQueryObserver.js';
4
4
  export { notifyManager } from './notifyManager.js';
@@ -1,4 +1,4 @@
1
- import { b1 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-BWO9yDiJ.cjs';
1
+ import { b1 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-DWTP6RQt.cjs';
2
2
  import './removable.cjs';
3
3
  import './subscribable.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { b1 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-DiTAi-4H.js';
1
+ import { b1 as QueryBehavior, a0 as InfiniteData, a6 as InfiniteQueryPageParamsOptions } from './hydration-ClXcjjG9.js';
2
2
  import './removable.js';
3
3
  import './subscribable.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aH as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b2 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-BWO9yDiJ.cjs';
1
+ import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aH as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b2 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-DWTP6RQt.cjs';
2
2
  import { Subscribable } from './subscribable.cjs';
3
3
  import './removable.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aH as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b2 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-DiTAi-4H.js';
1
+ import { z as DefaultError, a0 as InfiniteData, A as QueryKey, c as QueryObserver, aH as InfiniteQueryObserverResult, b as QueryClient, ac as InfiniteQueryObserverOptions, b2 as NotifyOptions, ad as DefaultedInfiniteQueryObserverOptions, ao as FetchNextPageOptions, ap as FetchPreviousPageOptions, u as Query } from './hydration-ClXcjjG9.js';
2
2
  import { Subscribable } from './subscribable.js';
3
3
  import './removable.js';
4
4
 
@@ -1,3 +1,3 @@
1
1
  import './removable.cjs';
2
- export { bs as Action, w as Mutation, v as MutationState, bt as getDefaultState } from './hydration-BWO9yDiJ.cjs';
2
+ export { bs as Action, w as Mutation, v as MutationState, bt as getDefaultState } from './hydration-DWTP6RQt.cjs';
3
3
  import './subscribable.cjs';
@@ -1,3 +1,3 @@
1
1
  import './removable.js';
2
- export { bs as Action, w as Mutation, v as MutationState, bt as getDefaultState } from './hydration-DiTAi-4H.js';
2
+ export { bs as Action, w as Mutation, v as MutationState, bt as getDefaultState } from './hydration-ClXcjjG9.js';
3
3
  import './subscribable.js';
@@ -53,15 +53,17 @@ var import_notifyManager = require("./notifyManager.cjs");
53
53
  var import_mutation = require("./mutation.cjs");
54
54
  var import_utils = require("./utils.cjs");
55
55
  var import_subscribable = require("./subscribable.cjs");
56
- var _mutations, _mutationId;
56
+ var _mutations, _scopes, _mutationId;
57
57
  var MutationCache = class extends import_subscribable.Subscribable {
58
58
  constructor(config = {}) {
59
59
  super();
60
60
  this.config = config;
61
61
  __privateAdd(this, _mutations, void 0);
62
+ __privateAdd(this, _scopes, void 0);
62
63
  __privateAdd(this, _mutationId, void 0);
63
- __privateSet(this, _mutations, /* @__PURE__ */ new Map());
64
- __privateSet(this, _mutationId, Date.now());
64
+ __privateSet(this, _mutations, /* @__PURE__ */ new Set());
65
+ __privateSet(this, _scopes, /* @__PURE__ */ new Map());
66
+ __privateSet(this, _mutationId, 0);
65
67
  }
66
68
  build(client, options, state) {
67
69
  const mutation = new import_mutation.Mutation({
@@ -74,46 +76,70 @@ var MutationCache = class extends import_subscribable.Subscribable {
74
76
  return mutation;
75
77
  }
76
78
  add(mutation) {
79
+ __privateGet(this, _mutations).add(mutation);
77
80
  const scope = scopeFor(mutation);
78
- const mutations = __privateGet(this, _mutations).get(scope) ?? [];
79
- mutations.push(mutation);
80
- __privateGet(this, _mutations).set(scope, mutations);
81
+ if (typeof scope === "string") {
82
+ const scopedMutations = __privateGet(this, _scopes).get(scope);
83
+ if (scopedMutations) {
84
+ scopedMutations.push(mutation);
85
+ } else {
86
+ __privateGet(this, _scopes).set(scope, [mutation]);
87
+ }
88
+ }
81
89
  this.notify({ type: "added", mutation });
82
90
  }
83
91
  remove(mutation) {
84
- var _a;
85
- const scope = scopeFor(mutation);
86
- if (__privateGet(this, _mutations).has(scope)) {
87
- const mutations = (_a = __privateGet(this, _mutations).get(scope)) == null ? void 0 : _a.filter((x) => x !== mutation);
88
- if (mutations) {
89
- if (mutations.length === 0) {
90
- __privateGet(this, _mutations).delete(scope);
91
- } else {
92
- __privateGet(this, _mutations).set(scope, mutations);
92
+ if (__privateGet(this, _mutations).delete(mutation)) {
93
+ const scope = scopeFor(mutation);
94
+ if (typeof scope === "string") {
95
+ const scopedMutations = __privateGet(this, _scopes).get(scope);
96
+ if (scopedMutations) {
97
+ if (scopedMutations.length > 1) {
98
+ const index = scopedMutations.indexOf(mutation);
99
+ if (index !== -1) {
100
+ scopedMutations.splice(index, 1);
101
+ }
102
+ } else if (scopedMutations[0] === mutation) {
103
+ __privateGet(this, _scopes).delete(scope);
104
+ }
93
105
  }
94
106
  }
95
107
  }
96
108
  this.notify({ type: "removed", mutation });
97
109
  }
98
110
  canRun(mutation) {
99
- var _a;
100
- const firstPendingMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m.state.status === "pending");
101
- return !firstPendingMutation || firstPendingMutation === mutation;
111
+ const scope = scopeFor(mutation);
112
+ if (typeof scope === "string") {
113
+ const mutationsWithSameScope = __privateGet(this, _scopes).get(scope);
114
+ const firstPendingMutation = mutationsWithSameScope == null ? void 0 : mutationsWithSameScope.find(
115
+ (m) => m.state.status === "pending"
116
+ );
117
+ return !firstPendingMutation || firstPendingMutation === mutation;
118
+ } else {
119
+ return true;
120
+ }
102
121
  }
103
122
  runNext(mutation) {
104
123
  var _a;
105
- const foundMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m !== mutation && m.state.isPaused);
106
- return (foundMutation == null ? void 0 : foundMutation.continue()) ?? Promise.resolve();
124
+ const scope = scopeFor(mutation);
125
+ if (typeof scope === "string") {
126
+ const foundMutation = (_a = __privateGet(this, _scopes).get(scope)) == null ? void 0 : _a.find((m) => m !== mutation && m.state.isPaused);
127
+ return (foundMutation == null ? void 0 : foundMutation.continue()) ?? Promise.resolve();
128
+ } else {
129
+ return Promise.resolve();
130
+ }
107
131
  }
108
132
  clear() {
109
133
  import_notifyManager.notifyManager.batch(() => {
110
- this.getAll().forEach((mutation) => {
111
- this.remove(mutation);
134
+ __privateGet(this, _mutations).forEach((mutation) => {
135
+ this.notify({ type: "removed", mutation });
112
136
  });
137
+ __privateGet(this, _mutations).clear();
138
+ __privateGet(this, _scopes).clear();
113
139
  });
114
140
  }
115
141
  getAll() {
116
- return [...__privateGet(this, _mutations).values()].flat();
142
+ return Array.from(__privateGet(this, _mutations));
117
143
  }
118
144
  find(filters) {
119
145
  const defaultedFilters = { exact: true, ...filters };
@@ -141,10 +167,11 @@ var MutationCache = class extends import_subscribable.Subscribable {
141
167
  }
142
168
  };
143
169
  _mutations = new WeakMap();
170
+ _scopes = new WeakMap();
144
171
  _mutationId = new WeakMap();
145
172
  function scopeFor(mutation) {
146
173
  var _a;
147
- return ((_a = mutation.options.scope) == null ? void 0 : _a.id) ?? String(mutation.mutationId);
174
+ return (_a = mutation.options.scope) == null ? void 0 : _a.id;
148
175
  }
149
176
  // Annotate the CommonJS export names for ESM import in node:
150
177
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { DefaultError, MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\nexport type MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Map<string, Array<Mutation<any, any, any, any>>>\n #mutationId: number\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = new Map()\n this.#mutationId = Date.now()\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n const scope = scopeFor(mutation)\n const mutations = this.#mutations.get(scope) ?? []\n mutations.push(mutation)\n this.#mutations.set(scope, mutations)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n const scope = scopeFor(mutation)\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations\n .get(scope)\n ?.filter((x) => x !== mutation)\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope)\n } else {\n this.#mutations.set(scope, mutations)\n }\n }\n }\n\n this.notify({ type: 'removed', mutation })\n }\n\n canRun(mutation: Mutation<any, any, any, any>): boolean {\n const firstPendingMutation = this.#mutations\n .get(scopeFor(mutation))\n ?.find((m) => m.state.status === 'pending')\n\n // we can run if there is no current pending mutation (start use-case)\n // or if WE are the first pending mutation (continue use-case)\n return !firstPendingMutation || firstPendingMutation === mutation\n }\n\n runNext(mutation: Mutation<any, any, any, any>): Promise<unknown> {\n const foundMutation = this.#mutations\n .get(scopeFor(mutation))\n ?.find((m) => m !== mutation && m.state.isPaused)\n\n return foundMutation?.continue() ?? Promise.resolve()\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Array<Mutation> {\n return [...this.#mutations.values()].flat()\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n ) as Mutation<TData, TError, TVariables, TContext> | undefined\n }\n\n findAll(filters: MutationFilters = {}): Array<Mutation> {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused)\n\n return notifyManager.batch(() =>\n Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop)),\n ),\n )\n }\n}\n\nfunction scopeFor(mutation: Mutation<any, any, any, any>) {\n return mutation.options.scope?.id ?? String(mutation.mutationId)\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { DefaultError, MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\nexport type MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Set<Mutation<any, any, any, any>>\n #scopes: Map<string, Array<Mutation<any, any, any, any>>>\n #mutationId: number\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = new Set()\n this.#scopes = new Map()\n this.#mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.#mutations.add(mutation)\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const scopedMutations = this.#scopes.get(scope)\n if (scopedMutations) {\n scopedMutations.push(mutation)\n } else {\n this.#scopes.set(scope, [mutation])\n }\n }\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const scopedMutations = this.#scopes.get(scope)\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation)\n if (index !== -1) {\n scopedMutations.splice(index, 1)\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope)\n }\n }\n }\n }\n\n // Currently we notify the removal even if the mutation was already removed.\n // Consider making this an error or not notifying of the removal depending on the desired semantics.\n this.notify({ type: 'removed', mutation })\n }\n\n canRun(mutation: Mutation<any, any, any, any>): boolean {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const mutationsWithSameScope = this.#scopes.get(scope)\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === 'pending',\n )\n // we can run if there is no current pending mutation (start use-case)\n // or if WE are the first pending mutation (continue use-case)\n return !firstPendingMutation || firstPendingMutation === mutation\n } else {\n // For unscoped mutations there are never any pending mutations in front of the\n // current mutation\n return true\n }\n }\n\n runNext(mutation: Mutation<any, any, any, any>): Promise<unknown> {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const foundMutation = this.#scopes\n .get(scope)\n ?.find((m) => m !== mutation && m.state.isPaused)\n\n return foundMutation?.continue() ?? Promise.resolve()\n } else {\n return Promise.resolve()\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: 'removed', mutation })\n })\n this.#mutations.clear()\n this.#scopes.clear()\n })\n }\n\n getAll(): Array<Mutation> {\n return Array.from(this.#mutations)\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n ) as Mutation<TData, TError, TVariables, TContext> | undefined\n }\n\n findAll(filters: MutationFilters = {}): Array<Mutation> {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused)\n\n return notifyManager.batch(() =>\n Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop)),\n ),\n )\n }\n}\n\nfunction scopeFor(mutation: Mutation<any, any, any, any>) {\n return mutation.options.scope?.id\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,3 @@
1
- export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-BWO9yDiJ.cjs';
1
+ export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-DWTP6RQt.cjs';
2
2
  import './subscribable.cjs';
3
3
  import './removable.cjs';
@@ -1,3 +1,3 @@
1
- export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-DiTAi-4H.js';
1
+ export { M as MutationCache, d as MutationCacheNotifyEvent } from './hydration-ClXcjjG9.js';
2
2
  import './subscribable.js';
3
3
  import './removable.js';
@@ -10,15 +10,17 @@ import { notifyManager } from "./notifyManager.js";
10
10
  import { Mutation } from "./mutation.js";
11
11
  import { matchMutation, noop } from "./utils.js";
12
12
  import { Subscribable } from "./subscribable.js";
13
- var _mutations, _mutationId;
13
+ var _mutations, _scopes, _mutationId;
14
14
  var MutationCache = class extends Subscribable {
15
15
  constructor(config = {}) {
16
16
  super();
17
17
  this.config = config;
18
18
  __privateAdd(this, _mutations, void 0);
19
+ __privateAdd(this, _scopes, void 0);
19
20
  __privateAdd(this, _mutationId, void 0);
20
- __privateSet(this, _mutations, /* @__PURE__ */ new Map());
21
- __privateSet(this, _mutationId, Date.now());
21
+ __privateSet(this, _mutations, /* @__PURE__ */ new Set());
22
+ __privateSet(this, _scopes, /* @__PURE__ */ new Map());
23
+ __privateSet(this, _mutationId, 0);
22
24
  }
23
25
  build(client, options, state) {
24
26
  const mutation = new Mutation({
@@ -31,46 +33,70 @@ var MutationCache = class extends Subscribable {
31
33
  return mutation;
32
34
  }
33
35
  add(mutation) {
36
+ __privateGet(this, _mutations).add(mutation);
34
37
  const scope = scopeFor(mutation);
35
- const mutations = __privateGet(this, _mutations).get(scope) ?? [];
36
- mutations.push(mutation);
37
- __privateGet(this, _mutations).set(scope, mutations);
38
+ if (typeof scope === "string") {
39
+ const scopedMutations = __privateGet(this, _scopes).get(scope);
40
+ if (scopedMutations) {
41
+ scopedMutations.push(mutation);
42
+ } else {
43
+ __privateGet(this, _scopes).set(scope, [mutation]);
44
+ }
45
+ }
38
46
  this.notify({ type: "added", mutation });
39
47
  }
40
48
  remove(mutation) {
41
- var _a;
42
- const scope = scopeFor(mutation);
43
- if (__privateGet(this, _mutations).has(scope)) {
44
- const mutations = (_a = __privateGet(this, _mutations).get(scope)) == null ? void 0 : _a.filter((x) => x !== mutation);
45
- if (mutations) {
46
- if (mutations.length === 0) {
47
- __privateGet(this, _mutations).delete(scope);
48
- } else {
49
- __privateGet(this, _mutations).set(scope, mutations);
49
+ if (__privateGet(this, _mutations).delete(mutation)) {
50
+ const scope = scopeFor(mutation);
51
+ if (typeof scope === "string") {
52
+ const scopedMutations = __privateGet(this, _scopes).get(scope);
53
+ if (scopedMutations) {
54
+ if (scopedMutations.length > 1) {
55
+ const index = scopedMutations.indexOf(mutation);
56
+ if (index !== -1) {
57
+ scopedMutations.splice(index, 1);
58
+ }
59
+ } else if (scopedMutations[0] === mutation) {
60
+ __privateGet(this, _scopes).delete(scope);
61
+ }
50
62
  }
51
63
  }
52
64
  }
53
65
  this.notify({ type: "removed", mutation });
54
66
  }
55
67
  canRun(mutation) {
56
- var _a;
57
- const firstPendingMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m.state.status === "pending");
58
- return !firstPendingMutation || firstPendingMutation === mutation;
68
+ const scope = scopeFor(mutation);
69
+ if (typeof scope === "string") {
70
+ const mutationsWithSameScope = __privateGet(this, _scopes).get(scope);
71
+ const firstPendingMutation = mutationsWithSameScope == null ? void 0 : mutationsWithSameScope.find(
72
+ (m) => m.state.status === "pending"
73
+ );
74
+ return !firstPendingMutation || firstPendingMutation === mutation;
75
+ } else {
76
+ return true;
77
+ }
59
78
  }
60
79
  runNext(mutation) {
61
80
  var _a;
62
- const foundMutation = (_a = __privateGet(this, _mutations).get(scopeFor(mutation))) == null ? void 0 : _a.find((m) => m !== mutation && m.state.isPaused);
63
- return (foundMutation == null ? void 0 : foundMutation.continue()) ?? Promise.resolve();
81
+ const scope = scopeFor(mutation);
82
+ if (typeof scope === "string") {
83
+ const foundMutation = (_a = __privateGet(this, _scopes).get(scope)) == null ? void 0 : _a.find((m) => m !== mutation && m.state.isPaused);
84
+ return (foundMutation == null ? void 0 : foundMutation.continue()) ?? Promise.resolve();
85
+ } else {
86
+ return Promise.resolve();
87
+ }
64
88
  }
65
89
  clear() {
66
90
  notifyManager.batch(() => {
67
- this.getAll().forEach((mutation) => {
68
- this.remove(mutation);
91
+ __privateGet(this, _mutations).forEach((mutation) => {
92
+ this.notify({ type: "removed", mutation });
69
93
  });
94
+ __privateGet(this, _mutations).clear();
95
+ __privateGet(this, _scopes).clear();
70
96
  });
71
97
  }
72
98
  getAll() {
73
- return [...__privateGet(this, _mutations).values()].flat();
99
+ return Array.from(__privateGet(this, _mutations));
74
100
  }
75
101
  find(filters) {
76
102
  const defaultedFilters = { exact: true, ...filters };
@@ -98,10 +124,11 @@ var MutationCache = class extends Subscribable {
98
124
  }
99
125
  };
100
126
  _mutations = new WeakMap();
127
+ _scopes = new WeakMap();
101
128
  _mutationId = new WeakMap();
102
129
  function scopeFor(mutation) {
103
130
  var _a;
104
- return ((_a = mutation.options.scope) == null ? void 0 : _a.id) ?? String(mutation.mutationId);
131
+ return (_a = mutation.options.scope) == null ? void 0 : _a.id;
105
132
  }
106
133
  export {
107
134
  MutationCache
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { DefaultError, MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\nexport type MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Map<string, Array<Mutation<any, any, any, any>>>\n #mutationId: number\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = new Map()\n this.#mutationId = Date.now()\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n const scope = scopeFor(mutation)\n const mutations = this.#mutations.get(scope) ?? []\n mutations.push(mutation)\n this.#mutations.set(scope, mutations)\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n const scope = scopeFor(mutation)\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations\n .get(scope)\n ?.filter((x) => x !== mutation)\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope)\n } else {\n this.#mutations.set(scope, mutations)\n }\n }\n }\n\n this.notify({ type: 'removed', mutation })\n }\n\n canRun(mutation: Mutation<any, any, any, any>): boolean {\n const firstPendingMutation = this.#mutations\n .get(scopeFor(mutation))\n ?.find((m) => m.state.status === 'pending')\n\n // we can run if there is no current pending mutation (start use-case)\n // or if WE are the first pending mutation (continue use-case)\n return !firstPendingMutation || firstPendingMutation === mutation\n }\n\n runNext(mutation: Mutation<any, any, any, any>): Promise<unknown> {\n const foundMutation = this.#mutations\n .get(scopeFor(mutation))\n ?.find((m) => m !== mutation && m.state.isPaused)\n\n return foundMutation?.continue() ?? Promise.resolve()\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation)\n })\n })\n }\n\n getAll(): Array<Mutation> {\n return [...this.#mutations.values()].flat()\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n ) as Mutation<TData, TError, TVariables, TContext> | undefined\n }\n\n findAll(filters: MutationFilters = {}): Array<Mutation> {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused)\n\n return notifyManager.batch(() =>\n Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop)),\n ),\n )\n }\n}\n\nfunction scopeFor(mutation: Mutation<any, any, any, any>) {\n return mutation.options.scope?.id ?? String(mutation.mutationId)\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,eAAe,YAAY;AACpC,SAAS,oBAAoB;AAH7B;AAmFO,IAAM,gBAAN,cAA4B,aAAoC;AAAA,EAIrE,YAAmB,SAA8B,CAAC,GAAG;AACnD,UAAM;AADW;AAHnB;AACA;AAIE,uBAAK,YAAa,oBAAI,IAAI;AAC1B,uBAAK,aAAc,KAAK,IAAI;AAAA,EAC9B;AAAA,EAEA,MACE,QACA,SACA,OAC+C;AAC/C,UAAM,WAAW,IAAI,SAAS;AAAA,MAC5B,eAAe;AAAA,MACf,YAAmB,EAAL,uBAAK,aAAL;AAAA,MACd,SAAS,OAAO,uBAAuB,OAAO;AAAA,MAC9C;AAAA,IACF,CAAC;AAED,SAAK,IAAI,QAAQ;AAEjB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAA8C;AAChD,UAAM,QAAQ,SAAS,QAAQ;AAC/B,UAAM,YAAY,mBAAK,YAAW,IAAI,KAAK,KAAK,CAAC;AACjD,cAAU,KAAK,QAAQ;AACvB,uBAAK,YAAW,IAAI,OAAO,SAAS;AACpC,SAAK,OAAO,EAAE,MAAM,SAAS,SAAS,CAAC;AAAA,EACzC;AAAA,EAEA,OAAO,UAA8C;AAtHvD;AAuHI,UAAM,QAAQ,SAAS,QAAQ;AAC/B,QAAI,mBAAK,YAAW,IAAI,KAAK,GAAG;AAC9B,YAAM,aAAY,wBAAK,YACpB,IAAI,KAAK,MADM,mBAEd,OAAO,CAAC,MAAM,MAAM;AACxB,UAAI,WAAW;AACb,YAAI,UAAU,WAAW,GAAG;AAC1B,6BAAK,YAAW,OAAO,KAAK;AAAA,QAC9B,OAAO;AACL,6BAAK,YAAW,IAAI,OAAO,SAAS;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAEA,SAAK,OAAO,EAAE,MAAM,WAAW,SAAS,CAAC;AAAA,EAC3C;AAAA,EAEA,OAAO,UAAiD;AAxI1D;AAyII,UAAM,wBAAuB,wBAAK,YAC/B,IAAI,SAAS,QAAQ,CAAC,MADI,mBAEzB,KAAK,CAAC,MAAM,EAAE,MAAM,WAAW;AAInC,WAAO,CAAC,wBAAwB,yBAAyB;AAAA,EAC3D;AAAA,EAEA,QAAQ,UAA0D;AAlJpE;AAmJI,UAAM,iBAAgB,wBAAK,YACxB,IAAI,SAAS,QAAQ,CAAC,MADH,mBAElB,KAAK,CAAC,MAAM,MAAM,YAAY,EAAE,MAAM;AAE1C,YAAO,+CAAe,eAAc,QAAQ,QAAQ;AAAA,EACtD;AAAA,EAEA,QAAc;AACZ,kBAAc,MAAM,MAAM;AACxB,WAAK,OAAO,EAAE,QAAQ,CAAC,aAAa;AAClC,aAAK,OAAO,QAAQ;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,SAA0B;AACxB,WAAO,CAAC,GAAG,mBAAK,YAAW,OAAO,CAAC,EAAE,KAAK;AAAA,EAC5C;AAAA,EAEA,KAME,SAC2D;AAC3D,UAAM,mBAAmB,EAAE,OAAO,MAAM,GAAG,QAAQ;AAEnD,WAAO,KAAK,OAAO,EAAE;AAAA,MAAK,CAAC,aACzB,cAAc,kBAAkB,QAAQ;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,QAAQ,UAA2B,CAAC,GAAoB;AACtD,WAAO,KAAK,OAAO,EAAE,OAAO,CAAC,aAAa,cAAc,SAAS,QAAQ,CAAC;AAAA,EAC5E;AAAA,EAEA,OAAO,OAAiC;AACtC,kBAAc,MAAM,MAAM;AACxB,WAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,iBAAS,KAAK;AAAA,MAChB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,wBAA0C;AACxC,UAAM,kBAAkB,KAAK,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,QAAQ;AAEpE,WAAO,cAAc;AAAA,MAAM,MACzB,QAAQ;AAAA,QACN,gBAAgB,IAAI,CAAC,aAAa,SAAS,SAAS,EAAE,MAAM,IAAI,CAAC;AAAA,MACnE;AAAA,IACF;AAAA,EACF;AACF;AAtHE;AACA;AAuHF,SAAS,SAAS,UAAwC;AA5M1D;AA6ME,WAAO,cAAS,QAAQ,UAAjB,mBAAwB,OAAM,OAAO,SAAS,UAAU;AACjE;","names":[]}
1
+ {"version":3,"sources":["../../src/mutationCache.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { Mutation } from './mutation'\nimport { matchMutation, noop } from './utils'\nimport { Subscribable } from './subscribable'\nimport type { MutationObserver } from './mutationObserver'\nimport type { DefaultError, MutationOptions, NotifyEvent } from './types'\nimport type { QueryClient } from './queryClient'\nimport type { Action, MutationState } from './mutation'\nimport type { MutationFilters } from './utils'\n\n// TYPES\n\ninterface MutationCacheConfig {\n onError?: (\n error: DefaultError,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSuccess?: (\n data: unknown,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onMutate?: (\n variables: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n onSettled?: (\n data: unknown | undefined,\n error: DefaultError | null,\n variables: unknown,\n context: unknown,\n mutation: Mutation<unknown, unknown, unknown>,\n ) => Promise<unknown> | unknown\n}\n\ninterface NotifyEventMutationAdded extends NotifyEvent {\n type: 'added'\n mutation: Mutation<any, any, any, any>\n}\ninterface NotifyEventMutationRemoved extends NotifyEvent {\n type: 'removed'\n mutation: Mutation<any, any, any, any>\n}\n\ninterface NotifyEventMutationObserverAdded extends NotifyEvent {\n type: 'observerAdded'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverRemoved extends NotifyEvent {\n type: 'observerRemoved'\n mutation: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any>\n}\n\ninterface NotifyEventMutationObserverOptionsUpdated extends NotifyEvent {\n type: 'observerOptionsUpdated'\n mutation?: Mutation<any, any, any, any>\n observer: MutationObserver<any, any, any, any>\n}\n\ninterface NotifyEventMutationUpdated extends NotifyEvent {\n type: 'updated'\n mutation: Mutation<any, any, any, any>\n action: Action<any, any, any, any>\n}\n\nexport type MutationCacheNotifyEvent =\n | NotifyEventMutationAdded\n | NotifyEventMutationRemoved\n | NotifyEventMutationObserverAdded\n | NotifyEventMutationObserverRemoved\n | NotifyEventMutationObserverOptionsUpdated\n | NotifyEventMutationUpdated\n\ntype MutationCacheListener = (event: MutationCacheNotifyEvent) => void\n\n// CLASS\n\nexport class MutationCache extends Subscribable<MutationCacheListener> {\n #mutations: Set<Mutation<any, any, any, any>>\n #scopes: Map<string, Array<Mutation<any, any, any, any>>>\n #mutationId: number\n\n constructor(public config: MutationCacheConfig = {}) {\n super()\n this.#mutations = new Set()\n this.#scopes = new Map()\n this.#mutationId = 0\n }\n\n build<TData, TError, TVariables, TContext>(\n client: QueryClient,\n options: MutationOptions<TData, TError, TVariables, TContext>,\n state?: MutationState<TData, TError, TVariables, TContext>,\n ): Mutation<TData, TError, TVariables, TContext> {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state,\n })\n\n this.add(mutation)\n\n return mutation\n }\n\n add(mutation: Mutation<any, any, any, any>): void {\n this.#mutations.add(mutation)\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const scopedMutations = this.#scopes.get(scope)\n if (scopedMutations) {\n scopedMutations.push(mutation)\n } else {\n this.#scopes.set(scope, [mutation])\n }\n }\n this.notify({ type: 'added', mutation })\n }\n\n remove(mutation: Mutation<any, any, any, any>): void {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const scopedMutations = this.#scopes.get(scope)\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation)\n if (index !== -1) {\n scopedMutations.splice(index, 1)\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope)\n }\n }\n }\n }\n\n // Currently we notify the removal even if the mutation was already removed.\n // Consider making this an error or not notifying of the removal depending on the desired semantics.\n this.notify({ type: 'removed', mutation })\n }\n\n canRun(mutation: Mutation<any, any, any, any>): boolean {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const mutationsWithSameScope = this.#scopes.get(scope)\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === 'pending',\n )\n // we can run if there is no current pending mutation (start use-case)\n // or if WE are the first pending mutation (continue use-case)\n return !firstPendingMutation || firstPendingMutation === mutation\n } else {\n // For unscoped mutations there are never any pending mutations in front of the\n // current mutation\n return true\n }\n }\n\n runNext(mutation: Mutation<any, any, any, any>): Promise<unknown> {\n const scope = scopeFor(mutation)\n if (typeof scope === 'string') {\n const foundMutation = this.#scopes\n .get(scope)\n ?.find((m) => m !== mutation && m.state.isPaused)\n\n return foundMutation?.continue() ?? Promise.resolve()\n } else {\n return Promise.resolve()\n }\n }\n\n clear(): void {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: 'removed', mutation })\n })\n this.#mutations.clear()\n this.#scopes.clear()\n })\n }\n\n getAll(): Array<Mutation> {\n return Array.from(this.#mutations)\n }\n\n find<\n TData = unknown,\n TError = DefaultError,\n TVariables = any,\n TContext = unknown,\n >(\n filters: MutationFilters,\n ): Mutation<TData, TError, TVariables, TContext> | undefined {\n const defaultedFilters = { exact: true, ...filters }\n\n return this.getAll().find((mutation) =>\n matchMutation(defaultedFilters, mutation),\n ) as Mutation<TData, TError, TVariables, TContext> | undefined\n }\n\n findAll(filters: MutationFilters = {}): Array<Mutation> {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation))\n }\n\n notify(event: MutationCacheNotifyEvent) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event)\n })\n })\n }\n\n resumePausedMutations(): Promise<unknown> {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused)\n\n return notifyManager.batch(() =>\n Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop)),\n ),\n )\n }\n}\n\nfunction scopeFor(mutation: Mutation<any, any, any, any>) {\n return mutation.options.scope?.id\n}\n"],"mappings":"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","names":[]}
@@ -1,3 +1,3 @@
1
1
  import './subscribable.cjs';
2
- export { e as MutationObserver } from './hydration-BWO9yDiJ.cjs';
2
+ export { e as MutationObserver } from './hydration-DWTP6RQt.cjs';
3
3
  import './removable.cjs';
@@ -1,3 +1,3 @@
1
1
  import './subscribable.js';
2
- export { e as MutationObserver } from './hydration-DiTAi-4H.js';
2
+ export { e as MutationObserver } from './hydration-ClXcjjG9.js';
3
3
  import './removable.js';
@@ -1,4 +1,4 @@
1
- import { az as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b2 as NotifyOptions, u as Query, A as QueryKey, c as QueryObserver } from './hydration-BWO9yDiJ.cjs';
1
+ import { az as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b2 as NotifyOptions, u as Query, A as QueryKey, c as QueryObserver } from './hydration-DWTP6RQt.cjs';
2
2
  import { Subscribable } from './subscribable.cjs';
3
3
  import './removable.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { az as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b2 as NotifyOptions, u as Query, A as QueryKey, c as QueryObserver } from './hydration-DiTAi-4H.js';
1
+ import { az as QueryObserverResult, b as QueryClient, a8 as QueryObserverOptions, b2 as NotifyOptions, u as Query, A as QueryKey, c as QueryObserver } from './hydration-ClXcjjG9.js';
2
2
  import { Subscribable } from './subscribable.js';
3
3
  import './removable.js';
4
4
 
@@ -1,3 +1,3 @@
1
1
  import './removable.cjs';
2
- export { b7 as Action, b3 as FetchContext, b4 as FetchDirection, b5 as FetchMeta, b6 as FetchOptions, u as Query, b1 as QueryBehavior, t as QueryState, b8 as SetStateOptions, b9 as fetchState } from './hydration-BWO9yDiJ.cjs';
2
+ export { b7 as Action, b3 as FetchContext, b4 as FetchDirection, b5 as FetchMeta, b6 as FetchOptions, u as Query, b1 as QueryBehavior, t as QueryState, b8 as SetStateOptions, b9 as fetchState } from './hydration-DWTP6RQt.cjs';
3
3
  import './subscribable.cjs';
@@ -1,3 +1,3 @@
1
1
  import './removable.js';
2
- export { b7 as Action, b3 as FetchContext, b4 as FetchDirection, b5 as FetchMeta, b6 as FetchOptions, u as Query, b1 as QueryBehavior, t as QueryState, b8 as SetStateOptions, b9 as fetchState } from './hydration-DiTAi-4H.js';
2
+ export { b7 as Action, b3 as FetchContext, b4 as FetchDirection, b5 as FetchMeta, b6 as FetchOptions, u as Query, b1 as QueryBehavior, t as QueryState, b8 as SetStateOptions, b9 as fetchState } from './hydration-ClXcjjG9.js';
3
3
  import './subscribable.js';
@@ -1,3 +1,3 @@
1
- export { Q as QueryCache, a as QueryCacheNotifyEvent, br as QueryStore } from './hydration-BWO9yDiJ.cjs';
1
+ export { Q as QueryCache, a as QueryCacheNotifyEvent, br as QueryStore } from './hydration-DWTP6RQt.cjs';
2
2
  import './subscribable.cjs';
3
3
  import './removable.cjs';
@@ -1,3 +1,3 @@
1
- export { Q as QueryCache, a as QueryCacheNotifyEvent, br as QueryStore } from './hydration-DiTAi-4H.js';
1
+ export { Q as QueryCache, a as QueryCacheNotifyEvent, br as QueryStore } from './hydration-ClXcjjG9.js';
2
2
  import './subscribable.js';
3
3
  import './removable.js';
@@ -1,3 +1,3 @@
1
- export { b as QueryClient } from './hydration-BWO9yDiJ.cjs';
1
+ export { b as QueryClient } from './hydration-DWTP6RQt.cjs';
2
2
  import './removable.cjs';
3
3
  import './subscribable.cjs';
@@ -1,3 +1,3 @@
1
- export { b as QueryClient } from './hydration-DiTAi-4H.js';
1
+ export { b as QueryClient } from './hydration-ClXcjjG9.js';
2
2
  import './removable.js';
3
3
  import './subscribable.js';
@@ -1,3 +1,3 @@
1
1
  import './subscribable.cjs';
2
- export { b2 as NotifyOptions, c as QueryObserver } from './hydration-BWO9yDiJ.cjs';
2
+ export { b2 as NotifyOptions, c as QueryObserver } from './hydration-DWTP6RQt.cjs';
3
3
  import './removable.cjs';
@@ -1,3 +1,3 @@
1
1
  import './subscribable.js';
2
- export { b2 as NotifyOptions, c as QueryObserver } from './hydration-DiTAi-4H.js';
2
+ export { b2 as NotifyOptions, c as QueryObserver } from './hydration-ClXcjjG9.js';
3
3
  import './removable.js';
@@ -1,3 +1,3 @@
1
- export { C as CancelledError, bw as RetryDelayValue, bv as RetryValue, bu as Retryer, bx as canFetch, by as createRetryer, l as isCancelledError } from './hydration-BWO9yDiJ.cjs';
1
+ export { C as CancelledError, bw as RetryDelayValue, bv as RetryValue, bu as Retryer, bx as canFetch, by as createRetryer, l as isCancelledError } from './hydration-DWTP6RQt.cjs';
2
2
  import './removable.cjs';
3
3
  import './subscribable.cjs';
@@ -1,3 +1,3 @@
1
- export { C as CancelledError, bw as RetryDelayValue, bv as RetryValue, bu as Retryer, bx as canFetch, by as createRetryer, l as isCancelledError } from './hydration-DiTAi-4H.js';
1
+ export { C as CancelledError, bw as RetryDelayValue, bv as RetryValue, bu as Retryer, bx as canFetch, by as createRetryer, l as isCancelledError } from './hydration-ClXcjjG9.js';
2
2
  import './removable.js';
3
3
  import './subscribable.js';
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -15,5 +19,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
15
19
 
16
20
  // src/types.ts
17
21
  var types_exports = {};
22
+ __export(types_exports, {
23
+ dataTagErrorSymbol: () => dataTagErrorSymbol,
24
+ dataTagSymbol: () => dataTagSymbol,
25
+ unsetMarker: () => unsetMarker
26
+ });
18
27
  module.exports = __toCommonJS(types_exports);
28
+ var dataTagSymbol = Symbol("dataTagSymbol");
29
+ var dataTagErrorSymbol = Symbol("dataTagErrorSymbol");
30
+ var unsetMarker = Symbol("unsetMarker");
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ dataTagErrorSymbol,
34
+ dataTagSymbol,
35
+ unsetMarker
36
+ });
19
37
  //# sourceMappingURL=types.cjs.map