@qiaopeng/tanstack-query-plus 0.5.8 → 0.5.10

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 (250) hide show
  1. package/README.md +155 -95
  2. package/dist/{types/base.d.ts → base-CHnwqfyz.d.cts} +12 -14
  3. package/dist/base-CHnwqfyz.d.ts +52 -0
  4. package/dist/chunk-52ZO6Y67.cjs +1121 -0
  5. package/dist/chunk-52ZO6Y67.cjs.map +1 -0
  6. package/dist/chunk-5J6OXSLW.cjs +36 -0
  7. package/dist/chunk-5J6OXSLW.cjs.map +1 -0
  8. package/dist/chunk-6MAYHLTE.cjs +310 -0
  9. package/dist/chunk-6MAYHLTE.cjs.map +1 -0
  10. package/dist/chunk-ADS2QTMP.js +144 -0
  11. package/dist/chunk-ADS2QTMP.js.map +1 -0
  12. package/dist/chunk-APXNNHBD.cjs +374 -0
  13. package/dist/chunk-APXNNHBD.cjs.map +1 -0
  14. package/dist/chunk-AXMWOGNX.js +134 -0
  15. package/dist/chunk-AXMWOGNX.js.map +1 -0
  16. package/dist/chunk-B4KO3K3E.cjs +521 -0
  17. package/dist/chunk-B4KO3K3E.cjs.map +1 -0
  18. package/dist/chunk-BK3OTIBD.cjs +15 -0
  19. package/dist/chunk-BK3OTIBD.cjs.map +1 -0
  20. package/dist/chunk-BYAOQALW.js +13 -0
  21. package/dist/chunk-BYAOQALW.js.map +1 -0
  22. package/dist/chunk-CRTVS7VI.cjs +162 -0
  23. package/dist/chunk-CRTVS7VI.cjs.map +1 -0
  24. package/dist/chunk-EXITP7QO.js +288 -0
  25. package/dist/chunk-EXITP7QO.js.map +1 -0
  26. package/dist/chunk-GMO3PRZZ.js +565 -0
  27. package/dist/chunk-GMO3PRZZ.js.map +1 -0
  28. package/dist/chunk-HRO2DWKZ.js +12 -0
  29. package/dist/chunk-HRO2DWKZ.js.map +1 -0
  30. package/dist/chunk-JHDKUQSB.js +1069 -0
  31. package/dist/chunk-JHDKUQSB.js.map +1 -0
  32. package/dist/chunk-JN2Y6RSY.js +23 -0
  33. package/dist/chunk-JN2Y6RSY.js.map +1 -0
  34. package/dist/chunk-JRJSKRZW.cjs +29 -0
  35. package/dist/chunk-JRJSKRZW.cjs.map +1 -0
  36. package/dist/chunk-KC62H4VJ.js +123 -0
  37. package/dist/chunk-KC62H4VJ.js.map +1 -0
  38. package/dist/chunk-LHEHSLD5.js +31 -0
  39. package/dist/chunk-LHEHSLD5.js.map +1 -0
  40. package/dist/chunk-N4264P7N.cjs +156 -0
  41. package/dist/chunk-N4264P7N.cjs.map +1 -0
  42. package/dist/chunk-NF5QYPYC.cjs +133 -0
  43. package/dist/chunk-NF5QYPYC.cjs.map +1 -0
  44. package/dist/chunk-OFLCHKKE.cjs +28 -0
  45. package/dist/chunk-OFLCHKKE.cjs.map +1 -0
  46. package/dist/chunk-PCNSWVA5.cjs +602 -0
  47. package/dist/chunk-PCNSWVA5.cjs.map +1 -0
  48. package/dist/chunk-STOMAA2X.js +85 -0
  49. package/dist/chunk-STOMAA2X.js.map +1 -0
  50. package/dist/chunk-UVF5S6LX.cjs +15 -0
  51. package/dist/chunk-UVF5S6LX.cjs.map +1 -0
  52. package/dist/chunk-WEIXCDCA.cjs +90 -0
  53. package/dist/chunk-WEIXCDCA.cjs.map +1 -0
  54. package/dist/chunk-X3ZTSLBQ.js +355 -0
  55. package/dist/chunk-X3ZTSLBQ.js.map +1 -0
  56. package/dist/chunk-YEV73J4J.js +504 -0
  57. package/dist/chunk-YEV73J4J.js.map +1 -0
  58. package/dist/chunk-YW5PNTRU.cjs +14 -0
  59. package/dist/chunk-YW5PNTRU.cjs.map +1 -0
  60. package/dist/chunk-ZNXSWUIS.js +12 -0
  61. package/dist/chunk-ZNXSWUIS.js.map +1 -0
  62. package/dist/chunk-ZUEMBY4W.js +21 -0
  63. package/dist/chunk-ZUEMBY4W.js.map +1 -0
  64. package/dist/components/index.cjs +60 -0
  65. package/dist/components/index.cjs.map +1 -0
  66. package/dist/components/index.d.cts +43 -0
  67. package/dist/components/index.d.ts +43 -4
  68. package/dist/components/index.js +3 -4
  69. package/dist/components/index.js.map +1 -0
  70. package/dist/core/devtools.cjs +25 -0
  71. package/dist/core/devtools.cjs.map +1 -0
  72. package/dist/core/devtools.d.cts +17 -0
  73. package/dist/core/devtools.d.ts +9 -7
  74. package/dist/core/devtools.js +4 -16
  75. package/dist/core/devtools.js.map +1 -0
  76. package/dist/core/index.cjs +220 -0
  77. package/dist/core/index.cjs.map +1 -0
  78. package/dist/core/index.d.cts +196 -0
  79. package/dist/core/index.d.ts +196 -9
  80. package/dist/core/index.js +7 -8
  81. package/dist/core/index.js.map +1 -0
  82. package/dist/features/index.cjs +76 -0
  83. package/dist/features/index.cjs.map +1 -0
  84. package/dist/features/index.d.cts +86 -0
  85. package/dist/features/index.d.ts +86 -4
  86. package/dist/features/index.js +7 -3
  87. package/dist/features/index.js.map +1 -0
  88. package/dist/hooks/index.cjs +209 -0
  89. package/dist/hooks/index.cjs.map +1 -0
  90. package/dist/hooks/index.d.cts +377 -0
  91. package/dist/hooks/index.d.ts +377 -10
  92. package/dist/hooks/index.js +8 -9
  93. package/dist/hooks/index.js.map +1 -0
  94. package/dist/hooks/useInViewPrefetch.cjs +33 -0
  95. package/dist/hooks/useInViewPrefetch.cjs.map +1 -0
  96. package/dist/hooks/useInViewPrefetch.d.cts +12 -0
  97. package/dist/hooks/useInViewPrefetch.d.ts +6 -4
  98. package/dist/hooks/useInViewPrefetch.js +30 -20
  99. package/dist/hooks/useInViewPrefetch.js.map +1 -0
  100. package/dist/index.cjs +811 -0
  101. package/dist/index.cjs.map +1 -0
  102. package/dist/index.d.cts +36 -0
  103. package/dist/index.d.ts +36 -8
  104. package/dist/index.js +89 -7
  105. package/dist/index.js.map +1 -0
  106. package/dist/{types/offline.d.ts → offline-DVPtgoAS.d.ts} +15 -13
  107. package/dist/offline-xxeA_-6V.d.cts +99 -0
  108. package/dist/persistence-MRtkmhqq.d.cts +216 -0
  109. package/dist/persistence-tIrEb0pR.d.ts +216 -0
  110. package/dist/react-query/index.cjs +52 -0
  111. package/dist/react-query/index.cjs.map +1 -0
  112. package/dist/react-query/index.d.cts +1 -0
  113. package/dist/react-query/index.d.ts +1 -3
  114. package/dist/react-query/index.js +3 -1
  115. package/dist/react-query/index.js.map +1 -0
  116. package/dist/types/index.cjs +43 -0
  117. package/dist/types/index.cjs.map +1 -0
  118. package/dist/types/index.d.cts +157 -0
  119. package/dist/types/index.d.ts +116 -12
  120. package/dist/types/index.js +6 -8
  121. package/dist/types/index.js.map +1 -0
  122. package/dist/utils/index.cjs +234 -0
  123. package/dist/utils/index.cjs.map +1 -0
  124. package/dist/utils/index.d.cts +272 -0
  125. package/dist/utils/index.d.ts +272 -10
  126. package/dist/utils/index.js +9 -9
  127. package/dist/utils/index.js.map +1 -0
  128. package/package.json +13 -3
  129. package/dist/PersistQueryClientProvider.d.ts +0 -22
  130. package/dist/PersistQueryClientProvider.d.ts.map +0 -1
  131. package/dist/PersistQueryClientProvider.js +0 -47
  132. package/dist/components/LoadingFallback.d.ts +0 -16
  133. package/dist/components/LoadingFallback.d.ts.map +0 -1
  134. package/dist/components/LoadingFallback.js +0 -27
  135. package/dist/components/QueryErrorBoundary.d.ts +0 -12
  136. package/dist/components/QueryErrorBoundary.d.ts.map +0 -1
  137. package/dist/components/QueryErrorBoundary.js +0 -9
  138. package/dist/components/SuspenseWrapper.d.ts +0 -14
  139. package/dist/components/SuspenseWrapper.d.ts.map +0 -1
  140. package/dist/components/SuspenseWrapper.js +0 -9
  141. package/dist/components/index.d.ts.map +0 -1
  142. package/dist/components/internal/ErrorBoundary.d.ts +0 -27
  143. package/dist/components/internal/ErrorBoundary.d.ts.map +0 -1
  144. package/dist/components/internal/ErrorBoundary.js +0 -37
  145. package/dist/core/config.d.ts +0 -80
  146. package/dist/core/config.d.ts.map +0 -1
  147. package/dist/core/config.js +0 -321
  148. package/dist/core/devtools.d.ts.map +0 -1
  149. package/dist/core/env.d.ts +0 -4
  150. package/dist/core/env.d.ts.map +0 -1
  151. package/dist/core/env.js +0 -26
  152. package/dist/core/focusManager.d.ts +0 -33
  153. package/dist/core/focusManager.d.ts.map +0 -1
  154. package/dist/core/focusManager.js +0 -122
  155. package/dist/core/index.d.ts.map +0 -1
  156. package/dist/core/keys.d.ts +0 -59
  157. package/dist/core/keys.d.ts.map +0 -1
  158. package/dist/core/keys.js +0 -107
  159. package/dist/core/queryOptions.d.ts +0 -19
  160. package/dist/core/queryOptions.d.ts.map +0 -1
  161. package/dist/core/queryOptions.js +0 -44
  162. package/dist/features/index.d.ts.map +0 -1
  163. package/dist/features/offline.d.ts +0 -48
  164. package/dist/features/offline.d.ts.map +0 -1
  165. package/dist/features/offline.js +0 -269
  166. package/dist/features/persistence.d.ts +0 -36
  167. package/dist/features/persistence.d.ts.map +0 -1
  168. package/dist/features/persistence.js +0 -186
  169. package/dist/hooks/batchQueries.d.ts +0 -129
  170. package/dist/hooks/batchQueries.d.ts.map +0 -1
  171. package/dist/hooks/batchQueries.js +0 -301
  172. package/dist/hooks/index.d.ts.map +0 -1
  173. package/dist/hooks/useDataGuardMutation.d.ts +0 -39
  174. package/dist/hooks/useDataGuardMutation.d.ts.map +0 -1
  175. package/dist/hooks/useDataGuardMutation.js +0 -151
  176. package/dist/hooks/useDataGuardQuery.d.ts +0 -28
  177. package/dist/hooks/useDataGuardQuery.d.ts.map +0 -1
  178. package/dist/hooks/useDataGuardQuery.js +0 -71
  179. package/dist/hooks/useFocusManager.d.ts +0 -41
  180. package/dist/hooks/useFocusManager.d.ts.map +0 -1
  181. package/dist/hooks/useFocusManager.js +0 -109
  182. package/dist/hooks/useInViewPrefetch.d.ts.map +0 -1
  183. package/dist/hooks/useInfiniteQuery.d.ts +0 -33
  184. package/dist/hooks/useInfiniteQuery.d.ts.map +0 -1
  185. package/dist/hooks/useInfiniteQuery.js +0 -61
  186. package/dist/hooks/useMutation.d.ts +0 -25
  187. package/dist/hooks/useMutation.d.ts.map +0 -1
  188. package/dist/hooks/useMutation.js +0 -180
  189. package/dist/hooks/usePrefetch.d.ts +0 -54
  190. package/dist/hooks/usePrefetch.d.ts.map +0 -1
  191. package/dist/hooks/usePrefetch.js +0 -229
  192. package/dist/hooks/useQuery.d.ts +0 -21
  193. package/dist/hooks/useQuery.d.ts.map +0 -1
  194. package/dist/hooks/useQuery.js +0 -46
  195. package/dist/hooks/useSuspenseQuery.d.ts +0 -11
  196. package/dist/hooks/useSuspenseQuery.d.ts.map +0 -1
  197. package/dist/hooks/useSuspenseQuery.js +0 -19
  198. package/dist/index.d.ts.map +0 -1
  199. package/dist/react-query/index.d.ts.map +0 -1
  200. package/dist/types/base.d.ts.map +0 -1
  201. package/dist/types/base.js +0 -26
  202. package/dist/types/dataGuard.d.ts +0 -69
  203. package/dist/types/dataGuard.d.ts.map +0 -1
  204. package/dist/types/dataGuard.js +0 -10
  205. package/dist/types/index.d.ts.map +0 -1
  206. package/dist/types/infinite.d.ts +0 -39
  207. package/dist/types/infinite.d.ts.map +0 -1
  208. package/dist/types/infinite.js +0 -1
  209. package/dist/types/offline.d.ts.map +0 -1
  210. package/dist/types/offline.js +0 -8
  211. package/dist/types/optimistic.d.ts +0 -126
  212. package/dist/types/optimistic.d.ts.map +0 -1
  213. package/dist/types/optimistic.js +0 -7
  214. package/dist/types/persistence.d.ts +0 -9
  215. package/dist/types/persistence.d.ts.map +0 -1
  216. package/dist/types/persistence.js +0 -1
  217. package/dist/types/selectors.d.ts +0 -11
  218. package/dist/types/selectors.d.ts.map +0 -1
  219. package/dist/types/selectors.js +0 -1
  220. package/dist/types/suspense.d.ts +0 -67
  221. package/dist/types/suspense.d.ts.map +0 -1
  222. package/dist/types/suspense.js +0 -1
  223. package/dist/utils/dataGuard.d.ts +0 -37
  224. package/dist/utils/dataGuard.d.ts.map +0 -1
  225. package/dist/utils/dataGuard.js +0 -257
  226. package/dist/utils/fieldMapper.d.ts +0 -9
  227. package/dist/utils/fieldMapper.d.ts.map +0 -1
  228. package/dist/utils/fieldMapper.js +0 -27
  229. package/dist/utils/index.d.ts.map +0 -1
  230. package/dist/utils/network.d.ts +0 -9
  231. package/dist/utils/network.d.ts.map +0 -1
  232. package/dist/utils/network.js +0 -43
  233. package/dist/utils/optimisticUtils.d.ts +0 -45
  234. package/dist/utils/optimisticUtils.d.ts.map +0 -1
  235. package/dist/utils/optimisticUtils.js +0 -116
  236. package/dist/utils/placeholderData.d.ts +0 -3
  237. package/dist/utils/placeholderData.d.ts.map +0 -1
  238. package/dist/utils/placeholderData.js +0 -28
  239. package/dist/utils/prefetchManager.d.ts +0 -111
  240. package/dist/utils/prefetchManager.d.ts.map +0 -1
  241. package/dist/utils/prefetchManager.js +0 -246
  242. package/dist/utils/queryKey.d.ts +0 -24
  243. package/dist/utils/queryKey.d.ts.map +0 -1
  244. package/dist/utils/queryKey.js +0 -77
  245. package/dist/utils/selectors.d.ts +0 -30
  246. package/dist/utils/selectors.d.ts.map +0 -1
  247. package/dist/utils/selectors.js +0 -18
  248. package/dist/utils/storage.d.ts +0 -7
  249. package/dist/utils/storage.d.ts.map +0 -1
  250. package/dist/utils/storage.js +0 -84
@@ -0,0 +1,196 @@
1
+ import { DefaultOptions, QueryKey, QueryFunction, UseQueryOptions, DefaultError } from '@tanstack/react-query';
2
+ export { focusManager } from '@tanstack/react-query';
3
+ export { DevToolsConfig, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from './devtools.cjs';
4
+ export { ReactQueryDevtools } from '@tanstack/react-query-devtools';
5
+ import 'react';
6
+
7
+ declare const TIME_CONSTANTS: {
8
+ readonly THIRTY_SECONDS: number;
9
+ readonly ONE_MINUTE: number;
10
+ readonly FIVE_MINUTES: number;
11
+ readonly TEN_MINUTES: number;
12
+ readonly FIFTEEN_MINUTES: number;
13
+ readonly THIRTY_MINUTES: number;
14
+ readonly ONE_HOUR: number;
15
+ readonly ONE_DAY: number;
16
+ };
17
+ declare const DEFAULT_STALE_TIME: number;
18
+ declare const DEFAULT_GC_TIME: number;
19
+ /**
20
+ * 默认 Query 重试策略
21
+ * - 4XX 客户端错误:不重试(客户端问题,重试无意义)
22
+ * - 5XX 服务端错误:最多重试 1 次(避免过度重试)
23
+ * - 其他错误(网络等):最多重试 2 次
24
+ */
25
+ declare function defaultQueryRetryStrategy(failureCount: number, error: unknown): boolean;
26
+ /**
27
+ * 默认 Mutation 重试策略
28
+ * - 4XX 客户端错误:不重试
29
+ * - 5XX 服务端错误:不重试(Mutation 更谨慎,避免重复操作)
30
+ * - 其他错误:最多重试 1 次
31
+ */
32
+ declare function defaultMutationRetryStrategy(failureCount: number, error: unknown): boolean;
33
+ declare function exponentialBackoff(attemptIndex: number): number;
34
+ declare const DEFAULT_QUERY_CONFIG: NonNullable<DefaultOptions["queries"]>;
35
+ declare const DEFAULT_MUTATION_CONFIG: NonNullable<DefaultOptions["mutations"]>;
36
+ declare const GLOBAL_QUERY_CONFIG: DefaultOptions;
37
+ declare const SMART_RETRY_MUTATION_CONFIG: DefaultOptions["mutations"];
38
+ declare const DEVELOPMENT_CONFIG: DefaultOptions;
39
+ declare const PRODUCTION_CONFIG: DefaultOptions;
40
+ declare const LONG_CACHE_CONFIG: DefaultOptions;
41
+ declare const REALTIME_CONFIG: DefaultOptions;
42
+ declare function getConfigByEnvironment(env: "development" | "production" | "test" | "realtime" | "longCache"): DefaultOptions;
43
+ declare function createCustomConfig(overrides: Partial<DefaultOptions>): DefaultOptions;
44
+ declare function validateGcTime(staleTime: number, gcTime: number): {
45
+ isValid: boolean;
46
+ warning?: string;
47
+ };
48
+ declare function validateConfig(config: DefaultOptions): {
49
+ isValid: boolean;
50
+ warnings: string[];
51
+ };
52
+ declare function ensureBestPractices(config: DefaultOptions): DefaultOptions;
53
+ /**
54
+ * 创建安全的重试策略
55
+ * @param maxRetries4xx - 4XX 错误最大重试次数(默认 0,不重试)
56
+ * @param maxRetries5xx - 5XX 错误最大重试次数(默认 0,不重试)
57
+ * @param maxRetriesOther - 其他错误最大重试次数(默认 1)
58
+ */
59
+ declare function createSafeRetryStrategy(maxRetries4xx?: number, maxRetries5xx?: number, maxRetriesOther?: number): (failureCount: number, error: unknown) => boolean;
60
+ /**
61
+ * 创建错误安全配置
62
+ * 适用于需要严格控制重试和 refetch 行为的场景
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // 完全禁用重试
67
+ * const config = createErrorSafeConfig({
68
+ * maxRetries4xx: 0,
69
+ * maxRetries5xx: 0,
70
+ * maxRetriesOther: 0,
71
+ * disableFocus: true,
72
+ * disableReconnect: true
73
+ * });
74
+ * ```
75
+ */
76
+ declare function createErrorSafeConfig(options?: {
77
+ maxRetries4xx?: number;
78
+ maxRetries5xx?: number;
79
+ maxRetriesOther?: number;
80
+ disableFocus?: boolean;
81
+ disableReconnect?: boolean;
82
+ conditionalRefetchInterval?: number | ((query: any) => number | false) | ((data: unknown, query: any) => number | false);
83
+ overrides?: Partial<DefaultOptions>;
84
+ }): DefaultOptions;
85
+
86
+ declare const isProd: boolean;
87
+ declare const isDev: boolean;
88
+ declare const isTest: boolean;
89
+
90
+ interface FocusManagerConfig {
91
+ enabled?: boolean;
92
+ customEventListener?: (handleFocus: () => void) => () => void;
93
+ refetchOnWindowFocus?: boolean;
94
+ }
95
+ declare function setupFocusManager(config?: FocusManagerConfig): void;
96
+ declare function pauseFocusManager(): void;
97
+ declare function resumeFocusManager(): void;
98
+ declare class SmartFocusManager {
99
+ private pauseCount;
100
+ private originalFocusState;
101
+ private refetchHistory;
102
+ private serializeKey;
103
+ pause(): void;
104
+ resume(): void;
105
+ reset(): void;
106
+ destroy(): void;
107
+ shouldRefetch(queryKey: QueryKey, minInterval?: number): boolean;
108
+ clearHistory(): void;
109
+ clearHistoryByKey(queryKey: QueryKey): void;
110
+ getLastRefetchTime(queryKey: QueryKey): number | undefined;
111
+ getStats(): {
112
+ isPaused: boolean;
113
+ pauseCount: number;
114
+ isFocused: boolean;
115
+ };
116
+ }
117
+ declare function getSmartFocusManager(): SmartFocusManager;
118
+ declare function resetSmartFocusManager(): void;
119
+
120
+ declare const queryKeys: {
121
+ all: readonly ["tanstack-query"];
122
+ users: () => readonly ["tanstack-query", "users"];
123
+ user: (id: string) => readonly ["tanstack-query", "users", string];
124
+ userProfile: (id: string) => readonly ["tanstack-query", "users", string, "profile"];
125
+ userSettings: (id: string) => readonly ["tanstack-query", "users", string, "settings"];
126
+ usersByRole: (role: string) => readonly ["tanstack-query", "users", "by-role", string];
127
+ posts: () => readonly ["tanstack-query", "posts"];
128
+ post: (id: string) => readonly ["tanstack-query", "posts", string];
129
+ postsByUser: (userId: string) => readonly ["tanstack-query", "posts", "by-user", string];
130
+ postsByTag: (tag: string) => readonly ["tanstack-query", "posts", "by-tag", string];
131
+ postComments: (postId: string) => readonly ["tanstack-query", "posts", string, "comments"];
132
+ search: (query: string, type?: string) => readonly ["tanstack-query", "search", {
133
+ readonly query: string;
134
+ readonly type: string | undefined;
135
+ }];
136
+ notifications: () => readonly ["tanstack-query", "notifications"];
137
+ notification: (id: string) => readonly ["tanstack-query", "notifications", string];
138
+ unreadNotifications: () => readonly ["tanstack-query", "notifications", "unread"];
139
+ settings: () => readonly ["tanstack-query", "settings"];
140
+ appSettings: () => readonly ["tanstack-query", "settings", "app"];
141
+ userPreferences: (userId: string) => readonly ["tanstack-query", "settings", "preferences", string];
142
+ };
143
+ declare function createFilteredKey(baseKey: QueryKey, filters: Record<string, unknown>): QueryKey;
144
+ declare function createPaginatedKey(baseKey: QueryKey, page: number, pageSize: number): QueryKey;
145
+ declare function createSortedKey(baseKey: QueryKey, sortBy: string, sortOrder?: "asc" | "desc"): QueryKey;
146
+ declare function createSearchKey(baseKey: QueryKey, searchTerm: string, searchFields?: string[]): QueryKey;
147
+ declare function createComplexKey(baseKey: QueryKey, options: {
148
+ page?: number;
149
+ pageSize?: number;
150
+ filters?: Record<string, unknown>;
151
+ sortBy?: string;
152
+ sortOrder?: "asc" | "desc";
153
+ search?: string;
154
+ }): QueryKey;
155
+ declare function matchesKeyPattern(queryKey: QueryKey, pattern: QueryKey): boolean;
156
+ declare function validateQueryKey(queryKey: QueryKey): boolean;
157
+ declare function containsEntity(queryKey: QueryKey, entity: string): boolean;
158
+ declare function extractEntityId(queryKey: QueryKey, entityIndex: number): string | undefined;
159
+ declare function normalizeQueryKey(queryKey: QueryKey): QueryKey;
160
+ declare function areKeysEqual(key1: QueryKey, key2: QueryKey): boolean;
161
+ declare function createDomainKeyFactory(domain: string): {
162
+ all: () => readonly ["tanstack-query", string];
163
+ lists: () => readonly ["tanstack-query", string, "list"];
164
+ list: (params?: Record<string, unknown>) => readonly ["tanstack-query", string, "list"] | readonly ["tanstack-query", string, "list", Record<string, unknown>];
165
+ details: () => readonly ["tanstack-query", string, "detail"];
166
+ detail: (id: string | number) => readonly ["tanstack-query", string, "detail", string | number];
167
+ subResource: (id: string | number, resource: string) => readonly ["tanstack-query", string, "detail", string | number, string];
168
+ byRelation: (relation: string, relationId: string | number) => readonly ["tanstack-query", string, `by-${string}`, string | number];
169
+ };
170
+ declare function createMutationKeyFactory(domain: string): {
171
+ create: () => readonly [string, "create"];
172
+ update: (id?: string | number) => readonly [string, "update", string | number] | readonly [string, "update"];
173
+ delete: (id?: string | number) => readonly [string, "delete", string | number] | readonly [string, "delete"];
174
+ batch: (operation: string) => readonly [string, "batch", string];
175
+ custom: (operation: string, id?: string | number) => readonly [string, string, string | number] | readonly [string, string];
176
+ };
177
+
178
+ interface BaseQueryConfig<TData> {
179
+ queryKey: QueryKey;
180
+ queryFn: QueryFunction<TData, QueryKey>;
181
+ staleTime?: number;
182
+ gcTime?: number;
183
+ enabled?: boolean;
184
+ }
185
+ declare function createAppQueryOptions<TData>(config: BaseQueryConfig<TData>): UseQueryOptions<TData, DefaultError, TData, QueryKey>;
186
+ interface SelectQueryConfig<TData, TSelected = TData> extends Omit<BaseQueryConfig<TData>, "enabled"> {
187
+ select: (data: TData) => TSelected;
188
+ }
189
+ declare function createAppQueryOptionsWithSelect<TData, TSelected = TData>(config: SelectQueryConfig<TData, TSelected>): UseQueryOptions<TData, DefaultError, TSelected, QueryKey>;
190
+ interface ListQueryConfig<TData> extends Omit<BaseQueryConfig<TData>, "staleTime" | "gcTime"> {
191
+ staleTime?: number;
192
+ gcTime?: number;
193
+ }
194
+ declare function createListQueryOptions<TData>(config: ListQueryConfig<TData>): UseQueryOptions<TData, DefaultError, TData, QueryKey>;
195
+
196
+ export { DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, DEVELOPMENT_CONFIG, type FocusManagerConfig, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, type ListQueryConfig, PRODUCTION_CONFIG, REALTIME_CONFIG, SMART_RETRY_MUTATION_CONFIG, SmartFocusManager, TIME_CONSTANTS, areKeysEqual, containsEntity, createAppQueryOptions, createAppQueryOptionsWithSelect, createComplexKey, createCustomConfig, createDomainKeyFactory, createErrorSafeConfig, createFilteredKey, createListQueryOptions, createMutationKeyFactory, createPaginatedKey, createSafeRetryStrategy, createSearchKey, createSortedKey, defaultMutationRetryStrategy, defaultQueryRetryStrategy, ensureBestPractices, exponentialBackoff, extractEntityId, getConfigByEnvironment, getSmartFocusManager, isDev, isProd, isTest, matchesKeyPattern, normalizeQueryKey, pauseFocusManager, queryKeys, resetSmartFocusManager, resumeFocusManager, setupFocusManager, validateConfig, validateGcTime, validateQueryKey };
@@ -1,9 +1,196 @@
1
- export { createCustomConfig, DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, defaultMutationRetryStrategy, defaultQueryRetryStrategy, DEVELOPMENT_CONFIG, ensureBestPractices, exponentialBackoff, getConfigByEnvironment, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, PRODUCTION_CONFIG, REALTIME_CONFIG, createErrorSafeConfig, createSafeRetryStrategy, SMART_RETRY_MUTATION_CONFIG, TIME_CONSTANTS, validateConfig, validateGcTime } from "./config.js";
2
- export { createDevToolsConfig, defaultDevToolsConfig, type DevToolsConfig, isDevToolsEnabled } from "./devtools.js";
3
- export { ReactQueryDevtools } from "./devtools.js";
4
- export { isDev, isProd, isTest } from "./env.js";
5
- export { focusManager, type FocusManagerConfig, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager, SmartFocusManager } from "./focusManager.js";
6
- export { areKeysEqual, containsEntity, createComplexKey, createDomainKeyFactory, createFilteredKey, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from "./keys.js";
7
- export { createAppQueryOptions, createAppQueryOptionsWithSelect } from "./queryOptions.js";
8
- export { createListQueryOptions, type ListQueryConfig } from "./queryOptions.js";
9
- //# sourceMappingURL=index.d.ts.map
1
+ import { DefaultOptions, QueryKey, QueryFunction, UseQueryOptions, DefaultError } from '@tanstack/react-query';
2
+ export { focusManager } from '@tanstack/react-query';
3
+ export { DevToolsConfig, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from './devtools.js';
4
+ export { ReactQueryDevtools } from '@tanstack/react-query-devtools';
5
+ import 'react';
6
+
7
+ declare const TIME_CONSTANTS: {
8
+ readonly THIRTY_SECONDS: number;
9
+ readonly ONE_MINUTE: number;
10
+ readonly FIVE_MINUTES: number;
11
+ readonly TEN_MINUTES: number;
12
+ readonly FIFTEEN_MINUTES: number;
13
+ readonly THIRTY_MINUTES: number;
14
+ readonly ONE_HOUR: number;
15
+ readonly ONE_DAY: number;
16
+ };
17
+ declare const DEFAULT_STALE_TIME: number;
18
+ declare const DEFAULT_GC_TIME: number;
19
+ /**
20
+ * 默认 Query 重试策略
21
+ * - 4XX 客户端错误:不重试(客户端问题,重试无意义)
22
+ * - 5XX 服务端错误:最多重试 1 次(避免过度重试)
23
+ * - 其他错误(网络等):最多重试 2 次
24
+ */
25
+ declare function defaultQueryRetryStrategy(failureCount: number, error: unknown): boolean;
26
+ /**
27
+ * 默认 Mutation 重试策略
28
+ * - 4XX 客户端错误:不重试
29
+ * - 5XX 服务端错误:不重试(Mutation 更谨慎,避免重复操作)
30
+ * - 其他错误:最多重试 1 次
31
+ */
32
+ declare function defaultMutationRetryStrategy(failureCount: number, error: unknown): boolean;
33
+ declare function exponentialBackoff(attemptIndex: number): number;
34
+ declare const DEFAULT_QUERY_CONFIG: NonNullable<DefaultOptions["queries"]>;
35
+ declare const DEFAULT_MUTATION_CONFIG: NonNullable<DefaultOptions["mutations"]>;
36
+ declare const GLOBAL_QUERY_CONFIG: DefaultOptions;
37
+ declare const SMART_RETRY_MUTATION_CONFIG: DefaultOptions["mutations"];
38
+ declare const DEVELOPMENT_CONFIG: DefaultOptions;
39
+ declare const PRODUCTION_CONFIG: DefaultOptions;
40
+ declare const LONG_CACHE_CONFIG: DefaultOptions;
41
+ declare const REALTIME_CONFIG: DefaultOptions;
42
+ declare function getConfigByEnvironment(env: "development" | "production" | "test" | "realtime" | "longCache"): DefaultOptions;
43
+ declare function createCustomConfig(overrides: Partial<DefaultOptions>): DefaultOptions;
44
+ declare function validateGcTime(staleTime: number, gcTime: number): {
45
+ isValid: boolean;
46
+ warning?: string;
47
+ };
48
+ declare function validateConfig(config: DefaultOptions): {
49
+ isValid: boolean;
50
+ warnings: string[];
51
+ };
52
+ declare function ensureBestPractices(config: DefaultOptions): DefaultOptions;
53
+ /**
54
+ * 创建安全的重试策略
55
+ * @param maxRetries4xx - 4XX 错误最大重试次数(默认 0,不重试)
56
+ * @param maxRetries5xx - 5XX 错误最大重试次数(默认 0,不重试)
57
+ * @param maxRetriesOther - 其他错误最大重试次数(默认 1)
58
+ */
59
+ declare function createSafeRetryStrategy(maxRetries4xx?: number, maxRetries5xx?: number, maxRetriesOther?: number): (failureCount: number, error: unknown) => boolean;
60
+ /**
61
+ * 创建错误安全配置
62
+ * 适用于需要严格控制重试和 refetch 行为的场景
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // 完全禁用重试
67
+ * const config = createErrorSafeConfig({
68
+ * maxRetries4xx: 0,
69
+ * maxRetries5xx: 0,
70
+ * maxRetriesOther: 0,
71
+ * disableFocus: true,
72
+ * disableReconnect: true
73
+ * });
74
+ * ```
75
+ */
76
+ declare function createErrorSafeConfig(options?: {
77
+ maxRetries4xx?: number;
78
+ maxRetries5xx?: number;
79
+ maxRetriesOther?: number;
80
+ disableFocus?: boolean;
81
+ disableReconnect?: boolean;
82
+ conditionalRefetchInterval?: number | ((query: any) => number | false) | ((data: unknown, query: any) => number | false);
83
+ overrides?: Partial<DefaultOptions>;
84
+ }): DefaultOptions;
85
+
86
+ declare const isProd: boolean;
87
+ declare const isDev: boolean;
88
+ declare const isTest: boolean;
89
+
90
+ interface FocusManagerConfig {
91
+ enabled?: boolean;
92
+ customEventListener?: (handleFocus: () => void) => () => void;
93
+ refetchOnWindowFocus?: boolean;
94
+ }
95
+ declare function setupFocusManager(config?: FocusManagerConfig): void;
96
+ declare function pauseFocusManager(): void;
97
+ declare function resumeFocusManager(): void;
98
+ declare class SmartFocusManager {
99
+ private pauseCount;
100
+ private originalFocusState;
101
+ private refetchHistory;
102
+ private serializeKey;
103
+ pause(): void;
104
+ resume(): void;
105
+ reset(): void;
106
+ destroy(): void;
107
+ shouldRefetch(queryKey: QueryKey, minInterval?: number): boolean;
108
+ clearHistory(): void;
109
+ clearHistoryByKey(queryKey: QueryKey): void;
110
+ getLastRefetchTime(queryKey: QueryKey): number | undefined;
111
+ getStats(): {
112
+ isPaused: boolean;
113
+ pauseCount: number;
114
+ isFocused: boolean;
115
+ };
116
+ }
117
+ declare function getSmartFocusManager(): SmartFocusManager;
118
+ declare function resetSmartFocusManager(): void;
119
+
120
+ declare const queryKeys: {
121
+ all: readonly ["tanstack-query"];
122
+ users: () => readonly ["tanstack-query", "users"];
123
+ user: (id: string) => readonly ["tanstack-query", "users", string];
124
+ userProfile: (id: string) => readonly ["tanstack-query", "users", string, "profile"];
125
+ userSettings: (id: string) => readonly ["tanstack-query", "users", string, "settings"];
126
+ usersByRole: (role: string) => readonly ["tanstack-query", "users", "by-role", string];
127
+ posts: () => readonly ["tanstack-query", "posts"];
128
+ post: (id: string) => readonly ["tanstack-query", "posts", string];
129
+ postsByUser: (userId: string) => readonly ["tanstack-query", "posts", "by-user", string];
130
+ postsByTag: (tag: string) => readonly ["tanstack-query", "posts", "by-tag", string];
131
+ postComments: (postId: string) => readonly ["tanstack-query", "posts", string, "comments"];
132
+ search: (query: string, type?: string) => readonly ["tanstack-query", "search", {
133
+ readonly query: string;
134
+ readonly type: string | undefined;
135
+ }];
136
+ notifications: () => readonly ["tanstack-query", "notifications"];
137
+ notification: (id: string) => readonly ["tanstack-query", "notifications", string];
138
+ unreadNotifications: () => readonly ["tanstack-query", "notifications", "unread"];
139
+ settings: () => readonly ["tanstack-query", "settings"];
140
+ appSettings: () => readonly ["tanstack-query", "settings", "app"];
141
+ userPreferences: (userId: string) => readonly ["tanstack-query", "settings", "preferences", string];
142
+ };
143
+ declare function createFilteredKey(baseKey: QueryKey, filters: Record<string, unknown>): QueryKey;
144
+ declare function createPaginatedKey(baseKey: QueryKey, page: number, pageSize: number): QueryKey;
145
+ declare function createSortedKey(baseKey: QueryKey, sortBy: string, sortOrder?: "asc" | "desc"): QueryKey;
146
+ declare function createSearchKey(baseKey: QueryKey, searchTerm: string, searchFields?: string[]): QueryKey;
147
+ declare function createComplexKey(baseKey: QueryKey, options: {
148
+ page?: number;
149
+ pageSize?: number;
150
+ filters?: Record<string, unknown>;
151
+ sortBy?: string;
152
+ sortOrder?: "asc" | "desc";
153
+ search?: string;
154
+ }): QueryKey;
155
+ declare function matchesKeyPattern(queryKey: QueryKey, pattern: QueryKey): boolean;
156
+ declare function validateQueryKey(queryKey: QueryKey): boolean;
157
+ declare function containsEntity(queryKey: QueryKey, entity: string): boolean;
158
+ declare function extractEntityId(queryKey: QueryKey, entityIndex: number): string | undefined;
159
+ declare function normalizeQueryKey(queryKey: QueryKey): QueryKey;
160
+ declare function areKeysEqual(key1: QueryKey, key2: QueryKey): boolean;
161
+ declare function createDomainKeyFactory(domain: string): {
162
+ all: () => readonly ["tanstack-query", string];
163
+ lists: () => readonly ["tanstack-query", string, "list"];
164
+ list: (params?: Record<string, unknown>) => readonly ["tanstack-query", string, "list"] | readonly ["tanstack-query", string, "list", Record<string, unknown>];
165
+ details: () => readonly ["tanstack-query", string, "detail"];
166
+ detail: (id: string | number) => readonly ["tanstack-query", string, "detail", string | number];
167
+ subResource: (id: string | number, resource: string) => readonly ["tanstack-query", string, "detail", string | number, string];
168
+ byRelation: (relation: string, relationId: string | number) => readonly ["tanstack-query", string, `by-${string}`, string | number];
169
+ };
170
+ declare function createMutationKeyFactory(domain: string): {
171
+ create: () => readonly [string, "create"];
172
+ update: (id?: string | number) => readonly [string, "update", string | number] | readonly [string, "update"];
173
+ delete: (id?: string | number) => readonly [string, "delete", string | number] | readonly [string, "delete"];
174
+ batch: (operation: string) => readonly [string, "batch", string];
175
+ custom: (operation: string, id?: string | number) => readonly [string, string, string | number] | readonly [string, string];
176
+ };
177
+
178
+ interface BaseQueryConfig<TData> {
179
+ queryKey: QueryKey;
180
+ queryFn: QueryFunction<TData, QueryKey>;
181
+ staleTime?: number;
182
+ gcTime?: number;
183
+ enabled?: boolean;
184
+ }
185
+ declare function createAppQueryOptions<TData>(config: BaseQueryConfig<TData>): UseQueryOptions<TData, DefaultError, TData, QueryKey>;
186
+ interface SelectQueryConfig<TData, TSelected = TData> extends Omit<BaseQueryConfig<TData>, "enabled"> {
187
+ select: (data: TData) => TSelected;
188
+ }
189
+ declare function createAppQueryOptionsWithSelect<TData, TSelected = TData>(config: SelectQueryConfig<TData, TSelected>): UseQueryOptions<TData, DefaultError, TSelected, QueryKey>;
190
+ interface ListQueryConfig<TData> extends Omit<BaseQueryConfig<TData>, "staleTime" | "gcTime"> {
191
+ staleTime?: number;
192
+ gcTime?: number;
193
+ }
194
+ declare function createListQueryOptions<TData>(config: ListQueryConfig<TData>): UseQueryOptions<TData, DefaultError, TData, QueryKey>;
195
+
196
+ export { DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, DEVELOPMENT_CONFIG, type FocusManagerConfig, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, type ListQueryConfig, PRODUCTION_CONFIG, REALTIME_CONFIG, SMART_RETRY_MUTATION_CONFIG, SmartFocusManager, TIME_CONSTANTS, areKeysEqual, containsEntity, createAppQueryOptions, createAppQueryOptionsWithSelect, createComplexKey, createCustomConfig, createDomainKeyFactory, createErrorSafeConfig, createFilteredKey, createListQueryOptions, createMutationKeyFactory, createPaginatedKey, createSafeRetryStrategy, createSearchKey, createSortedKey, defaultMutationRetryStrategy, defaultQueryRetryStrategy, ensureBestPractices, exponentialBackoff, extractEntityId, getConfigByEnvironment, getSmartFocusManager, isDev, isProd, isTest, matchesKeyPattern, normalizeQueryKey, pauseFocusManager, queryKeys, resetSmartFocusManager, resumeFocusManager, setupFocusManager, validateConfig, validateGcTime, validateQueryKey };
@@ -1,8 +1,7 @@
1
- export { createCustomConfig, DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, defaultMutationRetryStrategy, defaultQueryRetryStrategy, DEVELOPMENT_CONFIG, ensureBestPractices, exponentialBackoff, getConfigByEnvironment, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, PRODUCTION_CONFIG, REALTIME_CONFIG, createErrorSafeConfig, createSafeRetryStrategy, SMART_RETRY_MUTATION_CONFIG, TIME_CONSTANTS, validateConfig, validateGcTime } from "./config.js";
2
- export { createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from "./devtools.js";
3
- export { ReactQueryDevtools } from "./devtools.js";
4
- export { isDev, isProd, isTest } from "./env.js";
5
- export { focusManager, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager, SmartFocusManager } from "./focusManager.js";
6
- export { areKeysEqual, containsEntity, createComplexKey, createDomainKeyFactory, createFilteredKey, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from "./keys.js";
7
- export { createAppQueryOptions, createAppQueryOptionsWithSelect } from "./queryOptions.js";
8
- export { createListQueryOptions } from "./queryOptions.js";
1
+ export { areKeysEqual, containsEntity, createAppQueryOptions, createAppQueryOptionsWithSelect, createComplexKey, createDomainKeyFactory, createFilteredKey, createListQueryOptions, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from '../chunk-ADS2QTMP.js';
2
+ export { ReactQueryDevtools, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from '../chunk-ZUEMBY4W.js';
3
+ export { SmartFocusManager, focusManager, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager } from '../chunk-KC62H4VJ.js';
4
+ export { DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, DEVELOPMENT_CONFIG, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, PRODUCTION_CONFIG, REALTIME_CONFIG, SMART_RETRY_MUTATION_CONFIG, TIME_CONSTANTS, createCustomConfig, createErrorSafeConfig, createSafeRetryStrategy, defaultMutationRetryStrategy, defaultQueryRetryStrategy, ensureBestPractices, exponentialBackoff, getConfigByEnvironment, validateConfig, validateGcTime } from '../chunk-EXITP7QO.js';
5
+ export { isDev, isProd, isTest } from '../chunk-JN2Y6RSY.js';
6
+ //# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var chunkB4KO3K3E_cjs = require('../chunk-B4KO3K3E.cjs');
4
+ require('../chunk-WEIXCDCA.cjs');
5
+ require('../chunk-5J6OXSLW.cjs');
6
+ require('../chunk-6MAYHLTE.cjs');
7
+ require('../chunk-OFLCHKKE.cjs');
8
+
9
+
10
+
11
+ Object.defineProperty(exports, "OfflineQueueManager", {
12
+ enumerable: true,
13
+ get: function () { return chunkB4KO3K3E_cjs.OfflineQueueManager; }
14
+ });
15
+ Object.defineProperty(exports, "calculateExponentialBackoff", {
16
+ enumerable: true,
17
+ get: function () { return chunkB4KO3K3E_cjs.calculateExponentialBackoff; }
18
+ });
19
+ Object.defineProperty(exports, "checkStorageSize", {
20
+ enumerable: true,
21
+ get: function () { return chunkB4KO3K3E_cjs.checkStorageSize; }
22
+ });
23
+ Object.defineProperty(exports, "clearCache", {
24
+ enumerable: true,
25
+ get: function () { return chunkB4KO3K3E_cjs.clearCache; }
26
+ });
27
+ Object.defineProperty(exports, "clearExpiredCache", {
28
+ enumerable: true,
29
+ get: function () { return chunkB4KO3K3E_cjs.clearExpiredCache; }
30
+ });
31
+ Object.defineProperty(exports, "configureOfflineQueries", {
32
+ enumerable: true,
33
+ get: function () { return chunkB4KO3K3E_cjs.configureOfflineQueries; }
34
+ });
35
+ Object.defineProperty(exports, "createOfflineQueueManager", {
36
+ enumerable: true,
37
+ get: function () { return chunkB4KO3K3E_cjs.createOfflineQueueManager; }
38
+ });
39
+ Object.defineProperty(exports, "createPersistOptions", {
40
+ enumerable: true,
41
+ get: function () { return chunkB4KO3K3E_cjs.createPersistOptions; }
42
+ });
43
+ Object.defineProperty(exports, "createPersister", {
44
+ enumerable: true,
45
+ get: function () { return chunkB4KO3K3E_cjs.createPersister; }
46
+ });
47
+ Object.defineProperty(exports, "getStorageStats", {
48
+ enumerable: true,
49
+ get: function () { return chunkB4KO3K3E_cjs.getStorageStats; }
50
+ });
51
+ Object.defineProperty(exports, "isOnline", {
52
+ enumerable: true,
53
+ get: function () { return chunkB4KO3K3E_cjs.isOnline; }
54
+ });
55
+ Object.defineProperty(exports, "migrateToIndexedDB", {
56
+ enumerable: true,
57
+ get: function () { return chunkB4KO3K3E_cjs.migrateToIndexedDB; }
58
+ });
59
+ Object.defineProperty(exports, "mutationRegistry", {
60
+ enumerable: true,
61
+ get: function () { return chunkB4KO3K3E_cjs.mutationRegistry; }
62
+ });
63
+ Object.defineProperty(exports, "serializeMutationKey", {
64
+ enumerable: true,
65
+ get: function () { return chunkB4KO3K3E_cjs.serializeMutationKey; }
66
+ });
67
+ Object.defineProperty(exports, "setupOnlineManager", {
68
+ enumerable: true,
69
+ get: function () { return chunkB4KO3K3E_cjs.setupOnlineManager; }
70
+ });
71
+ Object.defineProperty(exports, "subscribeToOnlineStatus", {
72
+ enumerable: true,
73
+ get: function () { return chunkB4KO3K3E_cjs.subscribeToOnlineStatus; }
74
+ });
75
+ //# sourceMappingURL=index.cjs.map
76
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,86 @@
1
+ import { QueryClient, Query } from '@tanstack/react-query';
2
+ import { c as OfflineQueueConfig, b as OfflineMutationOperation, f as OfflineState, d as MutationFunctionRegistry } from '../offline-xxeA_-6V.cjs';
3
+ import { Persister } from '@tanstack/react-query-persist-client';
4
+ export { PersistedClient, Persister } from '@tanstack/react-query-persist-client';
5
+ import '../base-CHnwqfyz.cjs';
6
+
7
+ declare function setupOnlineManager(): void;
8
+ declare const isOnline: () => boolean;
9
+ declare function subscribeToOnlineStatus(callback: (online: boolean) => void): () => void;
10
+ declare function configureOfflineQueries(_queryClient: QueryClient): void;
11
+ declare function serializeMutationKey(mutationKey: unknown): string;
12
+ declare function calculateExponentialBackoff(attempt: number, baseDelay?: number, maxDelay?: number): number;
13
+ declare class MutationRegistry implements MutationFunctionRegistry {
14
+ private registry;
15
+ register(key: string, fn: () => Promise<unknown>): void;
16
+ get(key: string): (() => Promise<unknown>) | undefined;
17
+ unregister(key: string): void;
18
+ clear(): void;
19
+ getKeys(): string[];
20
+ }
21
+ declare const mutationRegistry: MutationRegistry;
22
+ declare class OfflineQueueManager {
23
+ private queue;
24
+ private config;
25
+ private isExecuting;
26
+ private executionTimer;
27
+ private unsubscribeOnline;
28
+ private executingOperations;
29
+ constructor(config?: Partial<OfflineQueueConfig>);
30
+ add(operation: Omit<OfflineMutationOperation, "id" | "createdAt" | "retryCount">): Promise<string>;
31
+ remove(operationId: string): Promise<boolean>;
32
+ getState(): OfflineState;
33
+ getOperations(): OfflineMutationOperation[];
34
+ clear(): Promise<void>;
35
+ execute(): Promise<{
36
+ success: number;
37
+ failed: number;
38
+ skipped: number;
39
+ }>;
40
+ private executeOperation;
41
+ private sortOperationsByDependency;
42
+ private createBatches;
43
+ private persistQueue;
44
+ private loadQueue;
45
+ private cleanupOldOperations;
46
+ private setupOnlineListener;
47
+ private startAutoExecution;
48
+ private stopAutoExecution;
49
+ destroy(): void;
50
+ }
51
+ declare function createOfflineQueueManager(config?: Partial<OfflineQueueConfig>): OfflineQueueManager;
52
+
53
+ interface PersistOptions {
54
+ maxAge?: number;
55
+ onlyPersistSuccess?: boolean;
56
+ dehydrateOptions?: {
57
+ shouldDehydrateQuery?: (query: Query) => boolean;
58
+ };
59
+ }
60
+ declare function createPersistOptions(config?: Partial<PersistOptions>): {
61
+ maxAge: number;
62
+ dehydrateOptions?: {
63
+ shouldDehydrateQuery?: (query: Query) => boolean;
64
+ };
65
+ };
66
+ declare function createPersister(storageKey?: string, storage?: Storage, onError?: (error: Error) => void): Persister | undefined;
67
+ declare function clearCache(key?: string): void;
68
+ declare function clearExpiredCache(key?: string, maxAge?: number): void;
69
+ declare function migrateToIndexedDB(localStorageKey: string | undefined, indexedDBKey: string | undefined, indexedDBStorage: Storage | {
70
+ setItem: (key: string, value: string) => Promise<void>;
71
+ }): Promise<boolean>;
72
+ declare function checkStorageSize(key?: string): {
73
+ sizeInBytes: number;
74
+ sizeInMB: number;
75
+ shouldMigrate: boolean;
76
+ message: string;
77
+ };
78
+ declare function getStorageStats(key?: string): {
79
+ exists: boolean;
80
+ age?: number;
81
+ queriesCount?: number;
82
+ mutationsCount?: number;
83
+ sizeInfo: ReturnType<typeof checkStorageSize>;
84
+ };
85
+
86
+ export { OfflineQueueManager, type PersistOptions, calculateExponentialBackoff, checkStorageSize, clearCache, clearExpiredCache, configureOfflineQueries, createOfflineQueueManager, createPersistOptions, createPersister, getStorageStats, isOnline, migrateToIndexedDB, mutationRegistry, serializeMutationKey, setupOnlineManager, subscribeToOnlineStatus };