@qiaopeng/tanstack-query-plus 0.5.9 → 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 +86 -55
  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 -57
  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 -327
  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 -32
  162. package/dist/features/index.d.ts.map +0 -1
  163. package/dist/features/offline.d.ts +0 -49
  164. package/dist/features/offline.d.ts.map +0 -1
  165. package/dist/features/offline.js +0 -300
  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 -187
  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 -137
  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 -251
  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 -26
  243. package/dist/utils/queryKey.d.ts.map +0 -1
  244. package/dist/utils/queryKey.js +0 -89
  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 @@
1
+ {"version":3,"sources":["../src/PersistQueryClientProvider.tsx"],"names":["useEffect","setupOnlineManager","useMemo","createPersister","TIME_CONSTANTS","jsx","QueryClientProvider","TanStackPersistProvider","useState","isOnline","subscribeToOnlineStatus","clearCache"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,0BAAA,CAA2B;AAAA,EACzC,QAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,sBAAA;AAAA,EACX,iBAAA,GAAoB,IAAA;AAAA,EACpB,oBAAA,GAAuB,IAAA;AAAA,EACvB,cAAA,EAAgB,eAAA;AAAA,EAChB;AACF,CAAA,EAAoC;AAClC,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAA,EAAsB;AACxB,MAAAC,oCAAA,EAAmB;AAAA,IACrB;AAAA,EACF,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAA,MAAM,SAAA,GAAYC,cAAQ,MAAM;AAC9B,IAAA,IAAI,CAAC,mBAAmB,OAAO,IAAA;AAC/B,IAAA,OAAOC,iCAAA,CAAgB,QAAA,EAAU,MAAA,EAAW,eAAe,CAAA;AAAA,EAC7D,CAAA,EAAG,CAAC,QAAA,EAAU,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAEjD,EAAA,MAAM,cAAA,GAAiBD,cAAQ,MAAM;AACnC,IAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AACvB,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA,QAAQE,gCAAA,CAAe;AAAA,KACzB;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,uBAAOC,cAAA,CAACC,8BAAA,EAAA,EAAoB,MAAA,EAAiB,QAAA,EAAS,CAAA;AAAA,IACxD;AACA,IAAA,uBACED,cAAA;AAAA,MAACE,kDAAA;AAAA,MAAA;AAAA,QACC,MAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QAEV;AAAA;AAAA,KACH;AAAA,EAEJ;AACA,EAAA,uBAAOF,cAAA,CAACC,8BAAA,EAAA,EAAoB,MAAA,EAAiB,QAAA,EAAS,CAAA;AACxD;AAEO,SAAS,oBAAA,GAAuB;AACrC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIE,cAAA,CAASC,4BAAU,CAAA;AAC/C,EAAAT,eAAA,CAAU,MAAM;AACd,IAAA,OAAOU,0CAAwB,SAAS,CAAA;AAAA,EAC1C,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,MAAA;AAAA,IACV,WAAW,CAAC;AAAA,GACd;AACF;AAEO,SAAS,qBAAA,GAAwB;AACtC,EAAA,MAAM,qBAAA,GAAwB,CAAC,QAAA,GAAW,sBAAA,KAA2B;AACnE,IAAAC,4BAAA,CAAW,QAAQ,CAAA;AAAA,EACrB,CAAA;AACA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,OAAOF,0BAAA,EAAS;AAAA,EAClB,CAAA;AACA,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,qBAAA;AAAA,IACZ;AAAA,GACF;AACF","file":"index.cjs","sourcesContent":["import type { QueryClient } from \"@tanstack/react-query\";\nimport type { ReactNode } from \"react\";\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { PersistQueryClientProvider as TanStackPersistProvider } from \"@tanstack/react-query-persist-client\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { TIME_CONSTANTS } from \"./core/config.js\";\nimport { isOnline, setupOnlineManager, subscribeToOnlineStatus } from \"./features/offline.js\";\nimport { clearCache, createPersister } from \"./features/persistence.js\";\n\nexport interface PersistQueryClientProviderProps {\n children: ReactNode;\n client: QueryClient;\n cacheKey?: string;\n enablePersistence?: boolean;\n enableOfflineSupport?: boolean;\n onPersistError?: (error: Error) => void;\n onPersistRestore?: () => void;\n}\n\nexport function PersistQueryClientProvider({\n children,\n client,\n cacheKey = \"tanstack-query-cache\",\n enablePersistence = true,\n enableOfflineSupport = true,\n onPersistError: _onPersistError,\n onPersistRestore\n}: PersistQueryClientProviderProps) {\n useEffect(() => {\n if (enableOfflineSupport) {\n setupOnlineManager();\n }\n }, [enableOfflineSupport]);\n\n const persister = useMemo(() => {\n if (!enablePersistence) return null;\n return createPersister(cacheKey, undefined, _onPersistError);\n }, [cacheKey, enablePersistence, _onPersistError]);\n\n const persistOptions = useMemo(() => {\n if (!persister) return null;\n return {\n persister,\n maxAge: TIME_CONSTANTS.ONE_DAY\n };\n }, [persister]);\n\n if (enablePersistence) {\n if (!persistOptions) {\n return <QueryClientProvider client={client}>{children}</QueryClientProvider>;\n }\n return (\n <TanStackPersistProvider\n client={client}\n persistOptions={persistOptions}\n onSuccess={onPersistRestore}\n >\n {children}\n </TanStackPersistProvider>\n );\n }\n return <QueryClientProvider client={client}>{children}</QueryClientProvider>;\n}\n\nexport function usePersistenceStatus() {\n const [online, setOnline] = useState(isOnline());\n useEffect(() => {\n return subscribeToOnlineStatus(setOnline);\n }, []);\n return {\n isOnline: online,\n isOffline: !online\n };\n}\n\nexport function usePersistenceManager() {\n const clearPersistenceCache = (cacheKey = \"tanstack-query-cache\") => {\n clearCache(cacheKey);\n };\n const getOnlineStatus = () => {\n return isOnline();\n };\n return {\n clearCache: clearPersistenceCache,\n getOnlineStatus\n };\n}\n\nexport default PersistQueryClientProvider;\n"]}
@@ -0,0 +1,36 @@
1
+ export { CardSkeletonFallback, DefaultLoadingFallback, FullScreenLoading, ListSkeletonFallback, PageSkeletonFallback, QueryErrorBoundary, QueryErrorBoundaryProps, QuerySuspenseWrapper, SmallLoadingIndicator, SuspenseWrapper, TextSkeletonFallback } from './components/index.cjs';
2
+ import { QueryClient } from '@tanstack/react-query';
3
+ export { HydrationBoundary, MutationFilters, MutationKey, QueryClient, QueryClientProvider, UseMutationOptions, UseQueryOptions, dehydrate, focusManager, hydrate, keepPreviousData, skipToken, useIsMutating, useQueryClient } from '@tanstack/react-query';
4
+ export { DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, DEVELOPMENT_CONFIG, FocusManagerConfig, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, 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 } from './core/index.cjs';
5
+ export { DevToolsConfig, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from './core/devtools.cjs';
6
+ export { DataGuardMutationOptions, EnhancedQueryOptions, EnhancedQueryResult, HoverPrefetchOptions, InViewPrefetchOptions, MutationDefaultsConfig, MutationStateOptions, PrefetchOptions, UseFocusRefetchOptions, UsePauseFocusOptions, batchQueryUtils, calculateBatchStats, createBatchQueryConfig, createCursorPaginationOptions, createInfiniteQueryOptions, createOffsetPaginationOptions, createPageNumberPaginationOptions, createSuspenseInfiniteQuery, createSuspenseQuery, setupMutationDefaults, useAutoRefreshBatchQueries, useBatchPrefetch, useBatchQueryPerformance, useCombinedQueries, useConditionalBatchQueries, useConditionalFocusRefetch, useConditionalPrefetch, useDashboardQueries, useDataGuardMutation, useDataGuardQueryConfig, useDependentBatchQueries, useDynamicBatchQueries, useEnhancedInfiniteQuery, useEnhancedQueries, useEnhancedQuery, useEnhancedSuspenseInfiniteQuery, useEnhancedSuspenseQueries, useEnhancedSuspenseQuery, useFocusCallback, useFocusRefetch, useFocusState, useHoverPrefetch, useIdlePrefetch, useIsFetching, useListMutation, useMutation, useMutationState, usePageVisibility, usePaginatedBatchQueries, usePauseFocus, usePeriodicPrefetch, usePredictivePrefetch, usePriorityPrefetch, useRetryBatchQueries, useRoutePrefetch, useSmartFocusManager, useSmartPrefetch } from './hooks/index.cjs';
7
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
+ import { ReactNode } from 'react';
9
+ export { CursorPaginatedResponse, EnhancedSuspenseInfiniteQueryOptions, EnhancedSuspenseInfiniteQueryResult, EnhancedSuspenseQueryOptions, EnhancedSuspenseQueryResult, ErrorBoundaryProps, ErrorBoundaryState, ErrorFallbackProps, LoadingFallbackProps, MutationContext, MutationOptions, OffsetPaginatedResponse, PageNumberPaginatedResponse, PaginatedResponseWithMeta, PaginationMeta, PaginationParams, QueryMetadata, QueryStatus, SuspenseConfig, SuspenseInfiniteQueryFunction, SuspenseQueryFunction, SuspenseWrapperProps } from './types/index.cjs';
10
+ export { BatchTask, FieldMappingConfig, InteractionRecord, ListOperationVariables, NavigatorWithConnection, NetworkSpeed, NormalizeConfig, PredictionResult, PrefetchConfig, PrefetchStats, PrefetchTask, QueryKeyFactory, QueryKeyFactoryConfig, SmartPrefetchManager, addHashToData, applyDataGuard, batchRemoveItems, batchUpdateItems, cancelQueriesBatch, clearRecentlyUpdated, compose, conditionalUpdateItems, createAddItemConfig, createFieldEnricher, createListOperationConfig, createOptimisticBase, createQueryKeyFactory, createRemoveItemConfig, createSimpleQueryKeyFactory, createTempId, createUpdateItemConfig, deepClone, deriveFamilyKey, extractParamsFromKey, formatBytes, getNetworkInfo, getNetworkSpeed, getPrefetchManager, getStorageUsage, hashObject, invalidateQueriesBatch, isFastNetwork, isListFamilyKey, isQueryKeyEqual, isSlowNetwork, isStorageAvailable, listUpdater, markRecentlyUpdated, normalizeQueryParams, reorderItems, resetPrefetchManager, selectById, selectByIds, selectCount, selectField, selectFields, selectFirst, selectItems, selectLast, selectMap, selectTotal, selectWhere, selectors, setQueryDataBatch, stableListPlaceholder, startsWithKeyPrefix, updateFamilyMetadata } from './utils/index.cjs';
11
+ export { ReactQueryDevtools } from '@tanstack/react-query-devtools';
12
+ export { PersistedClient, Persister } from '@tanstack/react-query-persist-client';
13
+ export { a as CachePriority, C as ConnectionQuality, D as DeepReadonly, N as NetworkInformation, b as NetworkStatus, O as OperationResult, c as Optional, P as PersistenceStrategyType, R as Required, S as StorageType } from './base-CHnwqfyz.cjs';
14
+ export { o as BatchErrorAggregate, n as BatchOperationReport, l as BatchQueryConfig, p as BatchQueryOperations, B as BatchQueryResult, k as BatchQueryStats, m as BatchRetryConfig, C as ConflictError, b as DataGuardInfo, c as DataGuardOptions, D as DataGuardStrategy, E as EnhancedBatchQueryResult, s as EntityWithId, L as ListOperationConfig, g as ListOperationType, i as ListUpdater, d as OptimisticContext, j as OptimisticGlobalConfig, e as OptimisticOperationType, f as OptimisticOperationTypeValue, O as OptimisticUpdateConfig, h as OptimisticUpdater, P as PaginatedData, R as RollbackFunction, r as Selector, S as StaleDataInfo, q as StorageInfo, V as VersionedEntity, a as VersionedPaginatedResponse } from './persistence-MRtkmhqq.cjs';
15
+ export { d as MutationFunctionRegistry, M as MutationOperationType, e as OfflineManagerConfig, b as OfflineMutationOperation, h as OfflineMutationOptions, a as OfflineQueryInfo, g as OfflineQueryOptions, c as OfflineQueueConfig, O as OfflineRecoveryConfig, f as OfflineState } from './offline-xxeA_-6V.cjs';
16
+
17
+ interface PersistQueryClientProviderProps {
18
+ children: ReactNode;
19
+ client: QueryClient;
20
+ cacheKey?: string;
21
+ enablePersistence?: boolean;
22
+ enableOfflineSupport?: boolean;
23
+ onPersistError?: (error: Error) => void;
24
+ onPersistRestore?: () => void;
25
+ }
26
+ declare function PersistQueryClientProvider({ children, client, cacheKey, enablePersistence, enableOfflineSupport, onPersistError: _onPersistError, onPersistRestore }: PersistQueryClientProviderProps): react_jsx_runtime.JSX.Element;
27
+ declare function usePersistenceStatus(): {
28
+ isOnline: boolean;
29
+ isOffline: boolean;
30
+ };
31
+ declare function usePersistenceManager(): {
32
+ clearCache: (cacheKey?: string) => void;
33
+ getOnlineStatus: () => boolean;
34
+ };
35
+
36
+ export { PersistQueryClientProvider, type PersistQueryClientProviderProps, usePersistenceManager, usePersistenceStatus };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,36 @@
1
- export * from "./components/index.js";
2
- export * from "./core/index.js";
3
- export * from "./hooks/index.js";
4
- export { PersistQueryClientProvider, usePersistenceStatus, usePersistenceManager, type PersistQueryClientProviderProps } from "./PersistQueryClientProvider.js";
5
- export * from "./types/index.js";
6
- export * from "./utils/index.js";
7
- export { QueryClient, QueryClientProvider, skipToken, useQueryClient, useIsMutating, type UseMutationOptions, type UseQueryOptions } from "@tanstack/react-query";
8
- //# sourceMappingURL=index.d.ts.map
1
+ export { CardSkeletonFallback, DefaultLoadingFallback, FullScreenLoading, ListSkeletonFallback, PageSkeletonFallback, QueryErrorBoundary, QueryErrorBoundaryProps, QuerySuspenseWrapper, SmallLoadingIndicator, SuspenseWrapper, TextSkeletonFallback } from './components/index.js';
2
+ import { QueryClient } from '@tanstack/react-query';
3
+ export { HydrationBoundary, MutationFilters, MutationKey, QueryClient, QueryClientProvider, UseMutationOptions, UseQueryOptions, dehydrate, focusManager, hydrate, keepPreviousData, skipToken, useIsMutating, useQueryClient } from '@tanstack/react-query';
4
+ export { DEFAULT_GC_TIME, DEFAULT_MUTATION_CONFIG, DEFAULT_QUERY_CONFIG, DEFAULT_STALE_TIME, DEVELOPMENT_CONFIG, FocusManagerConfig, GLOBAL_QUERY_CONFIG, LONG_CACHE_CONFIG, 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 } from './core/index.js';
5
+ export { DevToolsConfig, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from './core/devtools.js';
6
+ export { DataGuardMutationOptions, EnhancedQueryOptions, EnhancedQueryResult, HoverPrefetchOptions, InViewPrefetchOptions, MutationDefaultsConfig, MutationStateOptions, PrefetchOptions, UseFocusRefetchOptions, UsePauseFocusOptions, batchQueryUtils, calculateBatchStats, createBatchQueryConfig, createCursorPaginationOptions, createInfiniteQueryOptions, createOffsetPaginationOptions, createPageNumberPaginationOptions, createSuspenseInfiniteQuery, createSuspenseQuery, setupMutationDefaults, useAutoRefreshBatchQueries, useBatchPrefetch, useBatchQueryPerformance, useCombinedQueries, useConditionalBatchQueries, useConditionalFocusRefetch, useConditionalPrefetch, useDashboardQueries, useDataGuardMutation, useDataGuardQueryConfig, useDependentBatchQueries, useDynamicBatchQueries, useEnhancedInfiniteQuery, useEnhancedQueries, useEnhancedQuery, useEnhancedSuspenseInfiniteQuery, useEnhancedSuspenseQueries, useEnhancedSuspenseQuery, useFocusCallback, useFocusRefetch, useFocusState, useHoverPrefetch, useIdlePrefetch, useIsFetching, useListMutation, useMutation, useMutationState, usePageVisibility, usePaginatedBatchQueries, usePauseFocus, usePeriodicPrefetch, usePredictivePrefetch, usePriorityPrefetch, useRetryBatchQueries, useRoutePrefetch, useSmartFocusManager, useSmartPrefetch } from './hooks/index.js';
7
+ import * as react_jsx_runtime from 'react/jsx-runtime';
8
+ import { ReactNode } from 'react';
9
+ export { CursorPaginatedResponse, EnhancedSuspenseInfiniteQueryOptions, EnhancedSuspenseInfiniteQueryResult, EnhancedSuspenseQueryOptions, EnhancedSuspenseQueryResult, ErrorBoundaryProps, ErrorBoundaryState, ErrorFallbackProps, LoadingFallbackProps, MutationContext, MutationOptions, OffsetPaginatedResponse, PageNumberPaginatedResponse, PaginatedResponseWithMeta, PaginationMeta, PaginationParams, QueryMetadata, QueryStatus, SuspenseConfig, SuspenseInfiniteQueryFunction, SuspenseQueryFunction, SuspenseWrapperProps } from './types/index.js';
10
+ export { BatchTask, FieldMappingConfig, InteractionRecord, ListOperationVariables, NavigatorWithConnection, NetworkSpeed, NormalizeConfig, PredictionResult, PrefetchConfig, PrefetchStats, PrefetchTask, QueryKeyFactory, QueryKeyFactoryConfig, SmartPrefetchManager, addHashToData, applyDataGuard, batchRemoveItems, batchUpdateItems, cancelQueriesBatch, clearRecentlyUpdated, compose, conditionalUpdateItems, createAddItemConfig, createFieldEnricher, createListOperationConfig, createOptimisticBase, createQueryKeyFactory, createRemoveItemConfig, createSimpleQueryKeyFactory, createTempId, createUpdateItemConfig, deepClone, deriveFamilyKey, extractParamsFromKey, formatBytes, getNetworkInfo, getNetworkSpeed, getPrefetchManager, getStorageUsage, hashObject, invalidateQueriesBatch, isFastNetwork, isListFamilyKey, isQueryKeyEqual, isSlowNetwork, isStorageAvailable, listUpdater, markRecentlyUpdated, normalizeQueryParams, reorderItems, resetPrefetchManager, selectById, selectByIds, selectCount, selectField, selectFields, selectFirst, selectItems, selectLast, selectMap, selectTotal, selectWhere, selectors, setQueryDataBatch, stableListPlaceholder, startsWithKeyPrefix, updateFamilyMetadata } from './utils/index.js';
11
+ export { ReactQueryDevtools } from '@tanstack/react-query-devtools';
12
+ export { PersistedClient, Persister } from '@tanstack/react-query-persist-client';
13
+ export { a as CachePriority, C as ConnectionQuality, D as DeepReadonly, N as NetworkInformation, b as NetworkStatus, O as OperationResult, c as Optional, P as PersistenceStrategyType, R as Required, S as StorageType } from './base-CHnwqfyz.js';
14
+ export { o as BatchErrorAggregate, n as BatchOperationReport, l as BatchQueryConfig, p as BatchQueryOperations, B as BatchQueryResult, k as BatchQueryStats, m as BatchRetryConfig, C as ConflictError, b as DataGuardInfo, c as DataGuardOptions, D as DataGuardStrategy, E as EnhancedBatchQueryResult, s as EntityWithId, L as ListOperationConfig, g as ListOperationType, i as ListUpdater, d as OptimisticContext, j as OptimisticGlobalConfig, e as OptimisticOperationType, f as OptimisticOperationTypeValue, O as OptimisticUpdateConfig, h as OptimisticUpdater, P as PaginatedData, R as RollbackFunction, r as Selector, S as StaleDataInfo, q as StorageInfo, V as VersionedEntity, a as VersionedPaginatedResponse } from './persistence-tIrEb0pR.js';
15
+ export { d as MutationFunctionRegistry, M as MutationOperationType, e as OfflineManagerConfig, b as OfflineMutationOperation, h as OfflineMutationOptions, a as OfflineQueryInfo, g as OfflineQueryOptions, c as OfflineQueueConfig, O as OfflineRecoveryConfig, f as OfflineState } from './offline-DVPtgoAS.js';
16
+
17
+ interface PersistQueryClientProviderProps {
18
+ children: ReactNode;
19
+ client: QueryClient;
20
+ cacheKey?: string;
21
+ enablePersistence?: boolean;
22
+ enableOfflineSupport?: boolean;
23
+ onPersistError?: (error: Error) => void;
24
+ onPersistRestore?: () => void;
25
+ }
26
+ declare function PersistQueryClientProvider({ children, client, cacheKey, enablePersistence, enableOfflineSupport, onPersistError: _onPersistError, onPersistRestore }: PersistQueryClientProviderProps): react_jsx_runtime.JSX.Element;
27
+ declare function usePersistenceStatus(): {
28
+ isOnline: boolean;
29
+ isOffline: boolean;
30
+ };
31
+ declare function usePersistenceManager(): {
32
+ clearCache: (cacheKey?: string) => void;
33
+ getOnlineStatus: () => boolean;
34
+ };
35
+
36
+ export { PersistQueryClientProvider, type PersistQueryClientProviderProps, usePersistenceManager, usePersistenceStatus };
package/dist/index.js CHANGED
@@ -1,7 +1,89 @@
1
- export * from "./components/index.js";
2
- export * from "./core/index.js";
3
- export * from "./hooks/index.js";
4
- export { PersistQueryClientProvider, usePersistenceStatus, usePersistenceManager } from "./PersistQueryClientProvider.js";
5
- export * from "./types/index.js";
6
- export * from "./utils/index.js";
7
- export { QueryClient, QueryClientProvider, skipToken, useQueryClient, useIsMutating } from "@tanstack/react-query";
1
+ export { MutationOperationType } from './chunk-BYAOQALW.js';
2
+ export { SmartPrefetchManager, batchRemoveItems, batchUpdateItems, cancelQueriesBatch, compose, conditionalUpdateItems, createAddItemConfig, createFieldEnricher, createListOperationConfig, createOptimisticBase, createRemoveItemConfig, createTempId, createUpdateItemConfig, getPrefetchManager, invalidateQueriesBatch, keepPreviousData, listUpdater, reorderItems, resetPrefetchManager, selectById, selectByIds, selectCount, selectField, selectFields, selectFirst, selectItems, selectLast, selectMap, selectTotal, selectWhere, selectors, setQueryDataBatch, stableListPlaceholder } from './chunk-GMO3PRZZ.js';
3
+ export { ListOperationType, OptimisticOperationType } from './chunk-ZNXSWUIS.js';
4
+ export { CardSkeletonFallback, DefaultLoadingFallback, FullScreenLoading, HydrationBoundary, ListSkeletonFallback, PageSkeletonFallback, QueryErrorBoundary, QuerySuspenseWrapper, SmallLoadingIndicator, SuspenseWrapper, TextSkeletonFallback, dehydrate, hydrate } from './chunk-AXMWOGNX.js';
5
+ export { areKeysEqual, containsEntity, createAppQueryOptions, createAppQueryOptionsWithSelect, createComplexKey, createDomainKeyFactory, createFilteredKey, createListQueryOptions, createMutationKeyFactory, createPaginatedKey, createSearchKey, createSortedKey, extractEntityId, matchesKeyPattern, normalizeQueryKey, queryKeys, validateQueryKey } from './chunk-ADS2QTMP.js';
6
+ export { ReactQueryDevtools, createDevToolsConfig, defaultDevToolsConfig, isDevToolsEnabled } from './chunk-ZUEMBY4W.js';
7
+ import { setupOnlineManager, createPersister, isOnline, subscribeToOnlineStatus, clearCache } from './chunk-YEV73J4J.js';
8
+ export { deepClone, formatBytes, getStorageUsage, isStorageAvailable } from './chunk-STOMAA2X.js';
9
+ export { CachePriority, ConnectionQuality, PersistenceStrategyType, StorageType } from './chunk-LHEHSLD5.js';
10
+ export { batchQueryUtils, calculateBatchStats, createBatchQueryConfig, createCursorPaginationOptions, createInfiniteQueryOptions, createOffsetPaginationOptions, createPageNumberPaginationOptions, createSuspenseInfiniteQuery, createSuspenseQuery, setupMutationDefaults, useAutoRefreshBatchQueries, useBatchPrefetch, useBatchQueryPerformance, useCombinedQueries, useConditionalBatchQueries, useConditionalFocusRefetch, useConditionalPrefetch, useDashboardQueries, useDataGuardMutation, useDataGuardQueryConfig, useDependentBatchQueries, useDynamicBatchQueries, useEnhancedInfiniteQuery, useEnhancedQueries, useEnhancedQuery, useEnhancedSuspenseInfiniteQuery, useEnhancedSuspenseQueries, useEnhancedSuspenseQuery, useFocusCallback, useFocusRefetch, useFocusState, useHoverPrefetch, useIdlePrefetch, useIsFetching, useListMutation, useMutation, useMutationState, usePageVisibility, usePaginatedBatchQueries, usePauseFocus, usePeriodicPrefetch, usePredictivePrefetch, usePriorityPrefetch, useRetryBatchQueries, useRoutePrefetch, useSmartFocusManager, useSmartPrefetch } from './chunk-JHDKUQSB.js';
11
+ export { ConflictError } from './chunk-HRO2DWKZ.js';
12
+ export { addHashToData, applyDataGuard, clearRecentlyUpdated, createQueryKeyFactory, createSimpleQueryKeyFactory, deriveFamilyKey, extractParamsFromKey, getNetworkInfo, getNetworkSpeed, hashObject, isFastNetwork, isListFamilyKey, isQueryKeyEqual, isSlowNetwork, markRecentlyUpdated, normalizeQueryParams, startsWithKeyPrefix, updateFamilyMetadata } from './chunk-X3ZTSLBQ.js';
13
+ export { SmartFocusManager, focusManager, getSmartFocusManager, pauseFocusManager, resetSmartFocusManager, resumeFocusManager, setupFocusManager } from './chunk-KC62H4VJ.js';
14
+ import { TIME_CONSTANTS } from './chunk-EXITP7QO.js';
15
+ 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';
16
+ export { isDev, isProd, isTest } from './chunk-JN2Y6RSY.js';
17
+ import { QueryClientProvider } from '@tanstack/react-query';
18
+ export { QueryClient, QueryClientProvider, skipToken, useIsMutating, useQueryClient } from '@tanstack/react-query';
19
+ import { PersistQueryClientProvider as PersistQueryClientProvider$1 } from '@tanstack/react-query-persist-client';
20
+ import { useEffect, useMemo, useState } from 'react';
21
+ import { jsx } from 'react/jsx-runtime';
22
+
23
+ function PersistQueryClientProvider({
24
+ children,
25
+ client,
26
+ cacheKey = "tanstack-query-cache",
27
+ enablePersistence = true,
28
+ enableOfflineSupport = true,
29
+ onPersistError: _onPersistError,
30
+ onPersistRestore
31
+ }) {
32
+ useEffect(() => {
33
+ if (enableOfflineSupport) {
34
+ setupOnlineManager();
35
+ }
36
+ }, [enableOfflineSupport]);
37
+ const persister = useMemo(() => {
38
+ if (!enablePersistence) return null;
39
+ return createPersister(cacheKey, void 0, _onPersistError);
40
+ }, [cacheKey, enablePersistence, _onPersistError]);
41
+ const persistOptions = useMemo(() => {
42
+ if (!persister) return null;
43
+ return {
44
+ persister,
45
+ maxAge: TIME_CONSTANTS.ONE_DAY
46
+ };
47
+ }, [persister]);
48
+ if (enablePersistence) {
49
+ if (!persistOptions) {
50
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client, children });
51
+ }
52
+ return /* @__PURE__ */ jsx(
53
+ PersistQueryClientProvider$1,
54
+ {
55
+ client,
56
+ persistOptions,
57
+ onSuccess: onPersistRestore,
58
+ children
59
+ }
60
+ );
61
+ }
62
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client, children });
63
+ }
64
+ function usePersistenceStatus() {
65
+ const [online, setOnline] = useState(isOnline());
66
+ useEffect(() => {
67
+ return subscribeToOnlineStatus(setOnline);
68
+ }, []);
69
+ return {
70
+ isOnline: online,
71
+ isOffline: !online
72
+ };
73
+ }
74
+ function usePersistenceManager() {
75
+ const clearPersistenceCache = (cacheKey = "tanstack-query-cache") => {
76
+ clearCache(cacheKey);
77
+ };
78
+ const getOnlineStatus = () => {
79
+ return isOnline();
80
+ };
81
+ return {
82
+ clearCache: clearPersistenceCache,
83
+ getOnlineStatus
84
+ };
85
+ }
86
+
87
+ export { PersistQueryClientProvider, usePersistenceManager, usePersistenceStatus };
88
+ //# sourceMappingURL=index.js.map
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/PersistQueryClientProvider.tsx"],"names":["TanStackPersistProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBO,SAAS,0BAAA,CAA2B;AAAA,EACzC,QAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,sBAAA;AAAA,EACX,iBAAA,GAAoB,IAAA;AAAA,EACpB,oBAAA,GAAuB,IAAA;AAAA,EACvB,cAAA,EAAgB,eAAA;AAAA,EAChB;AACF,CAAA,EAAoC;AAClC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAA,EAAsB;AACxB,MAAA,kBAAA,EAAmB;AAAA,IACrB;AAAA,EACF,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC9B,IAAA,IAAI,CAAC,mBAAmB,OAAO,IAAA;AAC/B,IAAA,OAAO,eAAA,CAAgB,QAAA,EAAU,MAAA,EAAW,eAAe,CAAA;AAAA,EAC7D,CAAA,EAAG,CAAC,QAAA,EAAU,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAEjD,EAAA,MAAM,cAAA,GAAiB,QAAQ,MAAM;AACnC,IAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AACvB,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA,QAAQ,cAAA,CAAe;AAAA,KACzB;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,uBAAO,GAAA,CAAC,mBAAA,EAAA,EAAoB,MAAA,EAAiB,QAAA,EAAS,CAAA;AAAA,IACxD;AACA,IAAA,uBACE,GAAA;AAAA,MAACA,4BAAA;AAAA,MAAA;AAAA,QACC,MAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA,EAAW,gBAAA;AAAA,QAEV;AAAA;AAAA,KACH;AAAA,EAEJ;AACA,EAAA,uBAAO,GAAA,CAAC,mBAAA,EAAA,EAAoB,MAAA,EAAiB,QAAA,EAAS,CAAA;AACxD;AAEO,SAAS,oBAAA,GAAuB;AACrC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA,CAAS,UAAU,CAAA;AAC/C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,wBAAwB,SAAS,CAAA;AAAA,EAC1C,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,MAAA;AAAA,IACV,WAAW,CAAC;AAAA,GACd;AACF;AAEO,SAAS,qBAAA,GAAwB;AACtC,EAAA,MAAM,qBAAA,GAAwB,CAAC,QAAA,GAAW,sBAAA,KAA2B;AACnE,IAAA,UAAA,CAAW,QAAQ,CAAA;AAAA,EACrB,CAAA;AACA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,OAAO,QAAA,EAAS;AAAA,EAClB,CAAA;AACA,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,qBAAA;AAAA,IACZ;AAAA,GACF;AACF","file":"index.js","sourcesContent":["import type { QueryClient } from \"@tanstack/react-query\";\nimport type { ReactNode } from \"react\";\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { PersistQueryClientProvider as TanStackPersistProvider } from \"@tanstack/react-query-persist-client\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { TIME_CONSTANTS } from \"./core/config.js\";\nimport { isOnline, setupOnlineManager, subscribeToOnlineStatus } from \"./features/offline.js\";\nimport { clearCache, createPersister } from \"./features/persistence.js\";\n\nexport interface PersistQueryClientProviderProps {\n children: ReactNode;\n client: QueryClient;\n cacheKey?: string;\n enablePersistence?: boolean;\n enableOfflineSupport?: boolean;\n onPersistError?: (error: Error) => void;\n onPersistRestore?: () => void;\n}\n\nexport function PersistQueryClientProvider({\n children,\n client,\n cacheKey = \"tanstack-query-cache\",\n enablePersistence = true,\n enableOfflineSupport = true,\n onPersistError: _onPersistError,\n onPersistRestore\n}: PersistQueryClientProviderProps) {\n useEffect(() => {\n if (enableOfflineSupport) {\n setupOnlineManager();\n }\n }, [enableOfflineSupport]);\n\n const persister = useMemo(() => {\n if (!enablePersistence) return null;\n return createPersister(cacheKey, undefined, _onPersistError);\n }, [cacheKey, enablePersistence, _onPersistError]);\n\n const persistOptions = useMemo(() => {\n if (!persister) return null;\n return {\n persister,\n maxAge: TIME_CONSTANTS.ONE_DAY\n };\n }, [persister]);\n\n if (enablePersistence) {\n if (!persistOptions) {\n return <QueryClientProvider client={client}>{children}</QueryClientProvider>;\n }\n return (\n <TanStackPersistProvider\n client={client}\n persistOptions={persistOptions}\n onSuccess={onPersistRestore}\n >\n {children}\n </TanStackPersistProvider>\n );\n }\n return <QueryClientProvider client={client}>{children}</QueryClientProvider>;\n}\n\nexport function usePersistenceStatus() {\n const [online, setOnline] = useState(isOnline());\n useEffect(() => {\n return subscribeToOnlineStatus(setOnline);\n }, []);\n return {\n isOnline: online,\n isOffline: !online\n };\n}\n\nexport function usePersistenceManager() {\n const clearPersistenceCache = (cacheKey = \"tanstack-query-cache\") => {\n clearCache(cacheKey);\n };\n const getOnlineStatus = () => {\n return isOnline();\n };\n return {\n clearCache: clearPersistenceCache,\n getOnlineStatus\n };\n}\n\nexport default PersistQueryClientProvider;\n"]}
@@ -1,6 +1,7 @@
1
- import type { QueryKey } from "@tanstack/react-query";
2
- import type { NetworkStatus, OperationResult } from "./base";
3
- export interface OfflineRecoveryConfig {
1
+ import { QueryKey } from '@tanstack/react-query';
2
+ import { b as NetworkStatus, O as OperationResult } from './base-CHnwqfyz.js';
3
+
4
+ interface OfflineRecoveryConfig {
4
5
  enabled: boolean;
5
6
  retryInterval: number;
6
7
  maxRetries: number;
@@ -13,7 +14,7 @@ export interface OfflineRecoveryConfig {
13
14
  checkInterval?: number;
14
15
  refetchOnReconnect?: boolean;
15
16
  }
16
- export interface OfflineQueryInfo {
17
+ interface OfflineQueryInfo {
17
18
  queryKey: QueryKey;
18
19
  queryFn: () => Promise<unknown>;
19
20
  failedAt: Date;
@@ -22,14 +23,14 @@ export interface OfflineQueryInfo {
22
23
  isPaused: boolean;
23
24
  metadata?: Record<string, unknown>;
24
25
  }
25
- export declare enum MutationOperationType {
26
+ declare enum MutationOperationType {
26
27
  CREATE = "create",
27
28
  UPDATE = "update",
28
29
  DELETE = "delete",
29
30
  PATCH = "patch",
30
31
  CUSTOM = "custom"
31
32
  }
32
- export interface OfflineMutationOperation {
33
+ interface OfflineMutationOperation {
33
34
  id: string;
34
35
  type: MutationOperationType;
35
36
  mutationKey: QueryKey;
@@ -42,7 +43,7 @@ export interface OfflineMutationOperation {
42
43
  dependsOn?: string[];
43
44
  metadata?: Record<string, unknown>;
44
45
  }
45
- export interface OfflineQueueConfig {
46
+ interface OfflineQueueConfig {
46
47
  enabled: boolean;
47
48
  maxSize: number;
48
49
  persist: boolean;
@@ -52,14 +53,14 @@ export interface OfflineQueueConfig {
52
53
  operationTimeout: number;
53
54
  concurrency: number;
54
55
  }
55
- export interface MutationFunctionRegistry {
56
+ interface MutationFunctionRegistry {
56
57
  register: (key: string, fn: () => Promise<unknown>) => void;
57
58
  get: (key: string) => (() => Promise<unknown>) | undefined;
58
59
  unregister: (key: string) => void;
59
60
  clear: () => void;
60
61
  getKeys: () => string[];
61
62
  }
62
- export interface OfflineManagerConfig {
63
+ interface OfflineManagerConfig {
63
64
  networkCheck: {
64
65
  interval: number;
65
66
  url?: string;
@@ -73,7 +74,7 @@ export interface OfflineManagerConfig {
73
74
  onRecoveryComplete?: (recoveredCount: number) => void;
74
75
  };
75
76
  }
76
- export interface OfflineState {
77
+ interface OfflineState {
77
78
  isOffline: boolean;
78
79
  networkStatus: NetworkStatus;
79
80
  queuedOperations: number;
@@ -81,17 +82,18 @@ export interface OfflineState {
81
82
  lastSyncAt?: Date;
82
83
  isRecovering: boolean;
83
84
  }
84
- export interface OfflineQueryOptions {
85
+ interface OfflineQueryOptions {
85
86
  enabled?: boolean;
86
87
  fallbackData?: unknown;
87
88
  showStaleWhileOffline?: boolean;
88
89
  onReconnect?: "refetch" | "keep" | "invalidate";
89
90
  }
90
- export interface OfflineMutationOptions {
91
+ interface OfflineMutationOptions {
91
92
  enableQueue?: boolean;
92
93
  priority?: number;
93
94
  dependsOn?: string[];
94
95
  optimisticUpdate?: (variables: unknown) => void;
95
96
  rollback?: (variables: unknown) => void;
96
97
  }
97
- //# sourceMappingURL=offline.d.ts.map
98
+
99
+ export { MutationOperationType as M, type OfflineRecoveryConfig as O, type OfflineQueryInfo as a, type OfflineMutationOperation as b, type OfflineQueueConfig as c, type MutationFunctionRegistry as d, type OfflineManagerConfig as e, type OfflineState as f, type OfflineQueryOptions as g, type OfflineMutationOptions as h };
@@ -0,0 +1,99 @@
1
+ import { QueryKey } from '@tanstack/react-query';
2
+ import { b as NetworkStatus, O as OperationResult } from './base-CHnwqfyz.cjs';
3
+
4
+ interface OfflineRecoveryConfig {
5
+ enabled: boolean;
6
+ retryInterval: number;
7
+ maxRetries: number;
8
+ retryDelay: number;
9
+ customRetryDelay?: (attempt: number) => number;
10
+ networkCheckInterval: number;
11
+ retryOnReconnect: boolean;
12
+ refetchOnWindowFocus: boolean;
13
+ queryFilter?: (queryKey: QueryKey) => boolean;
14
+ checkInterval?: number;
15
+ refetchOnReconnect?: boolean;
16
+ }
17
+ interface OfflineQueryInfo {
18
+ queryKey: QueryKey;
19
+ queryFn: () => Promise<unknown>;
20
+ failedAt: Date;
21
+ retryCount: number;
22
+ lastError?: Error;
23
+ isPaused: boolean;
24
+ metadata?: Record<string, unknown>;
25
+ }
26
+ declare enum MutationOperationType {
27
+ CREATE = "create",
28
+ UPDATE = "update",
29
+ DELETE = "delete",
30
+ PATCH = "patch",
31
+ CUSTOM = "custom"
32
+ }
33
+ interface OfflineMutationOperation {
34
+ id: string;
35
+ type: MutationOperationType;
36
+ mutationKey: QueryKey;
37
+ mutationFn: () => Promise<unknown>;
38
+ variables: unknown;
39
+ createdAt: Date;
40
+ retryCount: number;
41
+ lastError?: Error;
42
+ priority: number;
43
+ dependsOn?: string[];
44
+ metadata?: Record<string, unknown>;
45
+ }
46
+ interface OfflineQueueConfig {
47
+ enabled: boolean;
48
+ maxSize: number;
49
+ persist: boolean;
50
+ storageKey: string;
51
+ autoExecuteInterval: number;
52
+ executeOnReconnect: boolean;
53
+ operationTimeout: number;
54
+ concurrency: number;
55
+ }
56
+ interface MutationFunctionRegistry {
57
+ register: (key: string, fn: () => Promise<unknown>) => void;
58
+ get: (key: string) => (() => Promise<unknown>) | undefined;
59
+ unregister: (key: string) => void;
60
+ clear: () => void;
61
+ getKeys: () => string[];
62
+ }
63
+ interface OfflineManagerConfig {
64
+ networkCheck: {
65
+ interval: number;
66
+ url?: string;
67
+ timeout: number;
68
+ };
69
+ queue: OfflineQueueConfig;
70
+ recovery: OfflineRecoveryConfig;
71
+ callbacks?: {
72
+ onNetworkChange?: (status: NetworkStatus) => void;
73
+ onQueueOperation?: (operation: OfflineMutationOperation, result: OperationResult) => void;
74
+ onRecoveryComplete?: (recoveredCount: number) => void;
75
+ };
76
+ }
77
+ interface OfflineState {
78
+ isOffline: boolean;
79
+ networkStatus: NetworkStatus;
80
+ queuedOperations: number;
81
+ failedQueries: number;
82
+ lastSyncAt?: Date;
83
+ isRecovering: boolean;
84
+ }
85
+ interface OfflineQueryOptions {
86
+ enabled?: boolean;
87
+ fallbackData?: unknown;
88
+ showStaleWhileOffline?: boolean;
89
+ onReconnect?: "refetch" | "keep" | "invalidate";
90
+ }
91
+ interface OfflineMutationOptions {
92
+ enableQueue?: boolean;
93
+ priority?: number;
94
+ dependsOn?: string[];
95
+ optimisticUpdate?: (variables: unknown) => void;
96
+ rollback?: (variables: unknown) => void;
97
+ }
98
+
99
+ export { MutationOperationType as M, type OfflineRecoveryConfig as O, type OfflineQueryInfo as a, type OfflineMutationOperation as b, type OfflineQueueConfig as c, type MutationFunctionRegistry as d, type OfflineManagerConfig as e, type OfflineState as f, type OfflineQueryOptions as g, type OfflineMutationOptions as h };
@@ -0,0 +1,216 @@
1
+ import { QueryKey } from '@tanstack/react-query';
2
+ import { S as StorageType } from './base-CHnwqfyz.cjs';
3
+
4
+ type Selector<TInput, TOutput> = (data: TInput | undefined) => TOutput;
5
+ type EntityWithId<T = string | number> = {
6
+ id: T;
7
+ [key: string]: unknown;
8
+ };
9
+ type PaginatedData<T> = {
10
+ items: T[];
11
+ total?: number;
12
+ [key: string]: unknown;
13
+ };
14
+
15
+ interface OptimisticUpdateConfig<TData = unknown, TVariables = unknown> {
16
+ queryKey: QueryKey;
17
+ updater: (oldData: TData | undefined, variables: TVariables) => TData | undefined;
18
+ rollback?: (previousData: TData, error: Error) => void;
19
+ enabled?: boolean;
20
+ }
21
+ interface OptimisticContext<TData = unknown> {
22
+ previousData?: TData;
23
+ timestamp: number;
24
+ operationType: OptimisticOperationTypeValue;
25
+ }
26
+ declare const OptimisticOperationType: {
27
+ readonly CREATE: "create";
28
+ readonly UPDATE: "update";
29
+ readonly DELETE: "delete";
30
+ readonly BATCH: "batch";
31
+ };
32
+ type OptimisticOperationTypeValue = (typeof OptimisticOperationType)[keyof typeof OptimisticOperationType];
33
+ interface ListOperationConfig<T extends EntityWithId> {
34
+ queryKey: QueryKey;
35
+ operation: ListOperationType;
36
+ onRollback?: (error: Error, context: OptimisticContext<T[]>) => void;
37
+ }
38
+ declare enum ListOperationType {
39
+ ADD = "add",
40
+ UPDATE = "update",
41
+ REMOVE = "remove"
42
+ }
43
+ interface BatchQueryResult<TData = unknown, TError = Error> {
44
+ data: TData | undefined;
45
+ isLoading: boolean;
46
+ isError: boolean;
47
+ error: TError | null;
48
+ status: "pending" | "error" | "success";
49
+ }
50
+ type OptimisticUpdater<TData = unknown, TVariables = unknown> = (oldData: TData | undefined, variables: TVariables) => TData;
51
+ type RollbackFunction<TData = unknown> = (previousData: TData, error: Error) => void;
52
+ type ListUpdater<T extends EntityWithId> = {
53
+ add: (items: T[] | undefined, newItem: T) => T[];
54
+ update: (items: T[] | undefined, updatedItem: Partial<T> & {
55
+ id: T["id"];
56
+ }) => T[];
57
+ remove: (items: T[] | undefined, itemId: T["id"]) => T[];
58
+ };
59
+ interface OptimisticGlobalConfig {
60
+ enabledByDefault: boolean;
61
+ defaultRollbackDelay: number;
62
+ debugMode: boolean;
63
+ maxRetries: number;
64
+ }
65
+ interface BatchQueryStats {
66
+ total: number;
67
+ loading: number;
68
+ success: number;
69
+ error: number;
70
+ stale: number;
71
+ successRate: number;
72
+ errorRate: number;
73
+ }
74
+ interface BatchQueryConfig<TData = unknown, TError = Error> {
75
+ enableStats?: boolean;
76
+ enableBatchOperations?: boolean;
77
+ autoRefreshInterval?: number;
78
+ onBatchSuccess?: (results: TData[]) => void;
79
+ onBatchError?: (errors: TError[]) => void;
80
+ onBatchSettled?: (results: TData[], errors: TError[]) => void;
81
+ retryConfig?: BatchRetryConfig;
82
+ enablePartialSuccess?: boolean;
83
+ onPartialSuccess?: (report: BatchOperationReport<TData, TError>) => void;
84
+ }
85
+ interface BatchRetryConfig {
86
+ maxRetries?: number;
87
+ retryDelay?: number | ((attemptIndex: number) => number);
88
+ retryOnlyFailed?: boolean;
89
+ shouldRetry?: (error: Error, attemptCount: number) => boolean;
90
+ }
91
+ interface BatchOperationReport<TData = unknown, TError = Error> {
92
+ total: number;
93
+ successful: number;
94
+ failed: number;
95
+ successResults: Array<{
96
+ index: number;
97
+ data: TData;
98
+ }>;
99
+ failureErrors: Array<{
100
+ index: number;
101
+ error: TError;
102
+ queryKey?: unknown[];
103
+ }>;
104
+ isPartialSuccess: boolean;
105
+ isFullSuccess: boolean;
106
+ isFullFailure: boolean;
107
+ duration: number;
108
+ retryCount?: number;
109
+ }
110
+ interface BatchErrorAggregate<TError = Error> {
111
+ totalErrors: number;
112
+ errors: Array<{
113
+ index: number;
114
+ error: TError;
115
+ queryKey?: unknown[];
116
+ }>;
117
+ errorsByType: Map<string, TError[]>;
118
+ firstError: TError | null;
119
+ lastError: TError | null;
120
+ errorSummary: string;
121
+ }
122
+ interface BatchQueryOperations {
123
+ refetchAll: () => Promise<PromiseSettledResult<unknown>[]>;
124
+ invalidateAll: () => Promise<PromiseSettledResult<void>[]>;
125
+ cancelAll: () => Promise<PromiseSettledResult<void>[]>;
126
+ resetAll: () => Promise<PromiseSettledResult<void>[]>;
127
+ removeAll: () => void;
128
+ retryFailed: () => Promise<BatchOperationReport>;
129
+ getErrorAggregate: () => BatchErrorAggregate;
130
+ getOperationReport: () => BatchOperationReport;
131
+ }
132
+ interface EnhancedBatchQueryResult<TData = unknown, TCombinedResult = TData, TError = Error> {
133
+ data: TCombinedResult;
134
+ stats: BatchQueryStats;
135
+ operations: BatchQueryOperations;
136
+ config: BatchQueryConfig<TData, TError>;
137
+ }
138
+
139
+ /**
140
+ * 数据防护策略类型
141
+ */
142
+ type DataGuardStrategy = "version" | "timestamp" | "hash" | "none";
143
+ /**
144
+ * 带版本控制的实体基础接口
145
+ */
146
+ interface VersionedEntity {
147
+ id: string | number;
148
+ version?: number;
149
+ updatedAt?: string;
150
+ }
151
+ /**
152
+ * 带版本控制的分页响应
153
+ */
154
+ interface VersionedPaginatedResponse<T> {
155
+ items: T[];
156
+ total: number;
157
+ page?: number;
158
+ pageSize?: number;
159
+ version?: number;
160
+ updatedAt?: string;
161
+ _hash?: string;
162
+ _recentlyUpdatedIds?: Array<string | number> | Set<string | number>;
163
+ }
164
+ /**
165
+ * 旧数据检测信息
166
+ */
167
+ interface StaleDataInfo {
168
+ reason: string;
169
+ strategy: DataGuardStrategy;
170
+ queryKey: QueryKey;
171
+ cached: any;
172
+ rejected: any;
173
+ }
174
+ /**
175
+ * 数据防护应用信息
176
+ */
177
+ interface DataGuardInfo {
178
+ strategy: DataGuardStrategy;
179
+ passed: boolean;
180
+ details: any;
181
+ }
182
+ /**
183
+ * 数据防护配置选项
184
+ */
185
+ interface DataGuardOptions {
186
+ /** 时间戳模式下,最大接受的数据年龄(毫秒),默认 10000 */
187
+ maxDataAge?: number;
188
+ /** 启用版本号检查,默认 true */
189
+ enableVersionCheck?: boolean;
190
+ /** 启用时间戳检查,默认 true */
191
+ enableTimestampCheck?: boolean;
192
+ /** 启用哈希检查(兜底),默认 true */
193
+ enableHashCheck?: boolean;
194
+ /** 检测到旧数据时的回调 */
195
+ onStaleDataDetected?: (info: StaleDataInfo) => void;
196
+ /** 应用防护时的回调 */
197
+ onDataGuardApplied?: (info: DataGuardInfo) => void;
198
+ }
199
+ /**
200
+ * 冲突错误类
201
+ */
202
+ declare class ConflictError extends Error {
203
+ details: any;
204
+ constructor(details: any);
205
+ }
206
+
207
+ interface StorageInfo {
208
+ type: StorageType;
209
+ used: number;
210
+ total: number;
211
+ usage: number;
212
+ available: boolean;
213
+ error?: string;
214
+ }
215
+
216
+ export { type BatchQueryResult as B, ConflictError as C, type DataGuardStrategy as D, type EnhancedBatchQueryResult as E, type ListOperationConfig as L, type OptimisticUpdateConfig as O, type PaginatedData as P, type RollbackFunction as R, type StaleDataInfo as S, type VersionedEntity as V, type VersionedPaginatedResponse as a, type DataGuardInfo as b, type DataGuardOptions as c, type OptimisticContext as d, OptimisticOperationType as e, type OptimisticOperationTypeValue as f, ListOperationType as g, type OptimisticUpdater as h, type ListUpdater as i, type OptimisticGlobalConfig as j, type BatchQueryStats as k, type BatchQueryConfig as l, type BatchRetryConfig as m, type BatchOperationReport as n, type BatchErrorAggregate as o, type BatchQueryOperations as p, type StorageInfo as q, type Selector as r, type EntityWithId as s };