@multiplatform.one/frappe 7.10.0 → 7.15.0

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 (239) hide show
  1. package/README.md +59 -1
  2. package/dist/cjs/auth.native.js.map +1 -1
  3. package/dist/cjs/call.native.js.map +1 -1
  4. package/dist/cjs/collection.native.js.map +1 -1
  5. package/dist/cjs/common/types.native.js.map +1 -1
  6. package/dist/cjs/core/http.native.js.map +1 -1
  7. package/dist/cjs/core/types.native.js.map +1 -1
  8. package/dist/cjs/core/wire.native.js.map +1 -1
  9. package/dist/cjs/db.native.js.map +1 -1
  10. package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  11. package/dist/cjs/devtools/index.native.js.map +1 -1
  12. package/dist/cjs/devtools/plugin.native.js.map +1 -1
  13. package/dist/cjs/devtools/theme.native.js.map +1 -1
  14. package/dist/cjs/doctype.cjs +25 -43
  15. package/dist/cjs/doctype.native.js +27 -43
  16. package/dist/cjs/doctype.native.js.map +1 -1
  17. package/dist/cjs/file.native.js.map +1 -1
  18. package/dist/cjs/fixtureDb.native.js.map +1 -1
  19. package/dist/cjs/fixtures.cjs +3 -0
  20. package/dist/cjs/fixtures.native.js +3 -0
  21. package/dist/cjs/fixtures.native.js.map +1 -1
  22. package/dist/cjs/frappeApp.native.js.map +1 -1
  23. package/dist/cjs/frappeReact.cjs +67 -31
  24. package/dist/cjs/frappeReact.native.js +87 -34
  25. package/dist/cjs/frappeReact.native.js.map +1 -1
  26. package/dist/cjs/index.cjs +7 -0
  27. package/dist/cjs/index.native.js +9 -2
  28. package/dist/cjs/index.native.js.map +1 -1
  29. package/dist/cjs/optimistic.native.js.map +1 -1
  30. package/dist/cjs/pacer.native.js.map +1 -1
  31. package/dist/cjs/plugin/index.native.js.map +1 -1
  32. package/dist/cjs/realtime.native.js.map +1 -1
  33. package/dist/cjs/serverLoaders.cjs +74 -0
  34. package/dist/cjs/serverLoaders.native.js +88 -0
  35. package/dist/cjs/serverLoaders.native.js.map +1 -0
  36. package/dist/cjs/sync/backfill.native.js.map +1 -1
  37. package/dist/cjs/sync/filters.native.js.map +1 -1
  38. package/dist/cjs/sync/index.cjs +99 -14
  39. package/dist/cjs/sync/index.native.js +129 -14
  40. package/dist/cjs/sync/index.native.js.map +1 -1
  41. package/dist/cjs/sync/merge.native.js.map +1 -1
  42. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  43. package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
  44. package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
  45. package/dist/cjs/sync/persistence.native.js.map +1 -1
  46. package/dist/cjs/sync/realtime.native.js.map +1 -1
  47. package/dist/cjs/sync/rehydration.cjs +4 -0
  48. package/dist/cjs/sync/rehydration.native.js +6 -0
  49. package/dist/cjs/sync/rehydration.native.js.map +1 -1
  50. package/dist/cjs/sync/storage.native.js.map +1 -1
  51. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  52. package/dist/cjs/sync/types.native.js.map +1 -1
  53. package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
  54. package/dist/cjs/syncOptionsKey.cjs +59 -0
  55. package/dist/cjs/syncOptionsKey.native.js +82 -0
  56. package/dist/cjs/syncOptionsKey.native.js.map +1 -0
  57. package/dist/cjs/useLiveQuery.cjs +2 -20
  58. package/dist/cjs/useLiveQuery.native.js +1 -22
  59. package/dist/cjs/useLiveQuery.native.js.map +1 -1
  60. package/dist/cjs/util.native.js.map +1 -1
  61. package/dist/esm/auth.native.js.map +1 -1
  62. package/dist/esm/call.native.js.map +1 -1
  63. package/dist/esm/collection.native.js.map +1 -1
  64. package/dist/esm/common/types.native.js.map +1 -1
  65. package/dist/esm/core/http.native.js.map +1 -1
  66. package/dist/esm/core/types.native.js.map +1 -1
  67. package/dist/esm/core/wire.native.js.map +1 -1
  68. package/dist/esm/db.native.js.map +1 -1
  69. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  70. package/dist/esm/devtools/index.native.js.map +1 -1
  71. package/dist/esm/devtools/plugin.native.js.map +1 -1
  72. package/dist/esm/devtools/theme.native.js.map +1 -1
  73. package/dist/esm/doctype.mjs +23 -44
  74. package/dist/esm/doctype.mjs.map +1 -1
  75. package/dist/esm/doctype.native.js +25 -44
  76. package/dist/esm/doctype.native.js.map +1 -1
  77. package/dist/esm/file.native.js.map +1 -1
  78. package/dist/esm/fixtureDb.native.js.map +1 -1
  79. package/dist/esm/fixtures.mjs +3 -0
  80. package/dist/esm/fixtures.mjs.map +1 -1
  81. package/dist/esm/fixtures.native.js +3 -0
  82. package/dist/esm/fixtures.native.js.map +1 -1
  83. package/dist/esm/frappeApp.native.js.map +1 -1
  84. package/dist/esm/frappeReact.mjs +68 -33
  85. package/dist/esm/frappeReact.mjs.map +1 -1
  86. package/dist/esm/frappeReact.native.js +87 -35
  87. package/dist/esm/frappeReact.native.js.map +1 -1
  88. package/dist/esm/index.mjs +4 -3
  89. package/dist/esm/index.mjs.map +1 -1
  90. package/dist/esm/index.native.js +4 -3
  91. package/dist/esm/index.native.js.map +1 -1
  92. package/dist/esm/optimistic.native.js.map +1 -1
  93. package/dist/esm/pacer.native.js.map +1 -1
  94. package/dist/esm/plugin/index.native.js.map +1 -1
  95. package/dist/esm/realtime.native.js.map +1 -1
  96. package/dist/esm/serverLoaders.mjs +48 -0
  97. package/dist/esm/serverLoaders.mjs.map +1 -0
  98. package/dist/esm/serverLoaders.native.js +59 -0
  99. package/dist/esm/serverLoaders.native.js.map +1 -0
  100. package/dist/esm/sync/backfill.native.js.map +1 -1
  101. package/dist/esm/sync/filters.native.js.map +1 -1
  102. package/dist/esm/sync/index.mjs +99 -14
  103. package/dist/esm/sync/index.mjs.map +1 -1
  104. package/dist/esm/sync/index.native.js +129 -14
  105. package/dist/esm/sync/index.native.js.map +1 -1
  106. package/dist/esm/sync/merge.native.js.map +1 -1
  107. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  108. package/dist/esm/sync/mutationJournal.native.js.map +1 -1
  109. package/dist/esm/sync/normalizedCache.native.js.map +1 -1
  110. package/dist/esm/sync/persistence.native.js.map +1 -1
  111. package/dist/esm/sync/realtime.native.js.map +1 -1
  112. package/dist/esm/sync/rehydration.mjs +4 -0
  113. package/dist/esm/sync/rehydration.mjs.map +1 -1
  114. package/dist/esm/sync/rehydration.native.js +6 -0
  115. package/dist/esm/sync/rehydration.native.js.map +1 -1
  116. package/dist/esm/sync/storage.native.js.map +1 -1
  117. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  118. package/dist/esm/sync/types.mjs.map +1 -1
  119. package/dist/esm/sync/types.native.js.map +1 -1
  120. package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
  121. package/dist/esm/syncOptionsKey.mjs +34 -0
  122. package/dist/esm/syncOptionsKey.mjs.map +1 -0
  123. package/dist/esm/syncOptionsKey.native.js +54 -0
  124. package/dist/esm/syncOptionsKey.native.js.map +1 -0
  125. package/dist/esm/useLiveQuery.mjs +1 -19
  126. package/dist/esm/useLiveQuery.mjs.map +1 -1
  127. package/dist/esm/useLiveQuery.native.js +1 -22
  128. package/dist/esm/useLiveQuery.native.js.map +1 -1
  129. package/dist/esm/util.native.js.map +1 -1
  130. package/dist/jsx/auth.native.js.map +1 -1
  131. package/dist/jsx/call.native.js.map +1 -1
  132. package/dist/jsx/collection.native.js.map +1 -1
  133. package/dist/jsx/common/types.native.js.map +1 -1
  134. package/dist/jsx/core/http.native.js.map +1 -1
  135. package/dist/jsx/core/types.native.js.map +1 -1
  136. package/dist/jsx/core/wire.native.js.map +1 -1
  137. package/dist/jsx/db.native.js.map +1 -1
  138. package/dist/jsx/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  139. package/dist/jsx/devtools/index.native.js.map +1 -1
  140. package/dist/jsx/devtools/plugin.native.js.map +1 -1
  141. package/dist/jsx/devtools/theme.native.js.map +1 -1
  142. package/dist/jsx/doctype.mjs +23 -44
  143. package/dist/jsx/doctype.mjs.map +1 -1
  144. package/dist/jsx/doctype.native.js +27 -43
  145. package/dist/jsx/doctype.native.js.map +1 -1
  146. package/dist/jsx/file.native.js.map +1 -1
  147. package/dist/jsx/fixtureDb.native.js.map +1 -1
  148. package/dist/jsx/fixtures.mjs +3 -0
  149. package/dist/jsx/fixtures.mjs.map +1 -1
  150. package/dist/jsx/fixtures.native.js +3 -0
  151. package/dist/jsx/fixtures.native.js.map +1 -1
  152. package/dist/jsx/frappeApp.native.js.map +1 -1
  153. package/dist/jsx/frappeReact.mjs +68 -33
  154. package/dist/jsx/frappeReact.mjs.map +1 -1
  155. package/dist/jsx/frappeReact.native.js +87 -34
  156. package/dist/jsx/frappeReact.native.js.map +1 -1
  157. package/dist/jsx/index.js +4 -3
  158. package/dist/jsx/index.js.map +1 -1
  159. package/dist/jsx/index.mjs +4 -3
  160. package/dist/jsx/index.mjs.map +1 -1
  161. package/dist/jsx/index.native.js +9 -2
  162. package/dist/jsx/index.native.js.map +1 -1
  163. package/dist/jsx/optimistic.native.js.map +1 -1
  164. package/dist/jsx/pacer.native.js.map +1 -1
  165. package/dist/jsx/plugin/index.native.js.map +1 -1
  166. package/dist/jsx/realtime.native.js.map +1 -1
  167. package/dist/jsx/serverLoaders.mjs +48 -0
  168. package/dist/jsx/serverLoaders.mjs.map +1 -0
  169. package/dist/jsx/serverLoaders.native.js +88 -0
  170. package/dist/jsx/serverLoaders.native.js.map +1 -0
  171. package/dist/jsx/sync/backfill.native.js.map +1 -1
  172. package/dist/jsx/sync/filters.native.js.map +1 -1
  173. package/dist/jsx/sync/index.mjs +99 -14
  174. package/dist/jsx/sync/index.mjs.map +1 -1
  175. package/dist/jsx/sync/index.native.js +129 -14
  176. package/dist/jsx/sync/index.native.js.map +1 -1
  177. package/dist/jsx/sync/merge.native.js.map +1 -1
  178. package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
  179. package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
  180. package/dist/jsx/sync/normalizedCache.native.js.map +1 -1
  181. package/dist/jsx/sync/persistence.native.js.map +1 -1
  182. package/dist/jsx/sync/realtime.native.js.map +1 -1
  183. package/dist/jsx/sync/rehydration.mjs +4 -0
  184. package/dist/jsx/sync/rehydration.mjs.map +1 -1
  185. package/dist/jsx/sync/rehydration.native.js +6 -0
  186. package/dist/jsx/sync/rehydration.native.js.map +1 -1
  187. package/dist/jsx/sync/storage.native.js.map +1 -1
  188. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  189. package/dist/jsx/sync/types.mjs.map +1 -1
  190. package/dist/jsx/sync/types.native.js.map +1 -1
  191. package/dist/jsx/sync/virtualPageManager.native.js.map +1 -1
  192. package/dist/jsx/syncOptionsKey.mjs +34 -0
  193. package/dist/jsx/syncOptionsKey.mjs.map +1 -0
  194. package/dist/jsx/syncOptionsKey.native.js +82 -0
  195. package/dist/jsx/syncOptionsKey.native.js.map +1 -0
  196. package/dist/jsx/useLiveQuery.mjs +1 -19
  197. package/dist/jsx/useLiveQuery.mjs.map +1 -1
  198. package/dist/jsx/useLiveQuery.native.js +1 -22
  199. package/dist/jsx/useLiveQuery.native.js.map +1 -1
  200. package/dist/jsx/util.native.js.map +1 -1
  201. package/package.json +12 -12
  202. package/src/doctype.spec.ts +148 -5
  203. package/src/doctype.ts +202 -173
  204. package/src/fixtures.ts +1 -0
  205. package/src/frappeReact.catchUp.spec.tsx +105 -0
  206. package/src/frappeReact.hydration.spec.tsx +164 -0
  207. package/src/frappeReact.spec.ts +56 -0
  208. package/src/frappeReact.ts +93 -43
  209. package/src/index.ts +14 -0
  210. package/src/serverLoaders.ts +77 -0
  211. package/src/sync/catchUp.spec.ts +142 -0
  212. package/src/sync/index.ts +106 -9
  213. package/src/sync/rehydration.ts +5 -0
  214. package/src/sync/syncModule.spec.ts +20 -0
  215. package/src/sync/types.ts +9 -1
  216. package/src/syncOptionsKey.spec.ts +46 -0
  217. package/src/syncOptionsKey.ts +45 -0
  218. package/src/useLiveQuery.hydration.spec.tsx +129 -0
  219. package/src/useLiveQuery.spec.ts +3 -11
  220. package/src/useLiveQuery.ts +3 -57
  221. package/types/doctype.d.ts +117 -33
  222. package/types/doctype.d.ts.map +1 -1
  223. package/types/fixtures.d.ts.map +1 -1
  224. package/types/frappeReact.d.ts +9 -3
  225. package/types/frappeReact.d.ts.map +1 -1
  226. package/types/index.d.ts +6 -5
  227. package/types/index.d.ts.map +1 -1
  228. package/types/serverLoaders.d.ts +40 -0
  229. package/types/serverLoaders.d.ts.map +1 -0
  230. package/types/sync/index.d.ts +15 -1
  231. package/types/sync/index.d.ts.map +1 -1
  232. package/types/sync/rehydration.d.ts +2 -0
  233. package/types/sync/rehydration.d.ts.map +1 -1
  234. package/types/sync/types.d.ts +8 -1
  235. package/types/sync/types.d.ts.map +1 -1
  236. package/types/syncOptionsKey.d.ts +3 -0
  237. package/types/syncOptionsKey.d.ts.map +1 -0
  238. package/types/useLiveQuery.d.ts +3 -13
  239. package/types/useLiveQuery.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import { isWindowDefined } from "@multiplatform.one/platform";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
3
3
  import { createFrappeCollection, releaseFrappeCollectionSync } from "./collection.mjs";
4
4
  import { HttpClient } from "./core/http.mjs";
5
5
  import { DbModule } from "./db.mjs";
@@ -7,10 +7,17 @@ import { FixtureDbModule } from "./fixtureDb.mjs";
7
7
  import { RealtimeModule } from "./realtime.mjs";
8
8
  import { SyncModule } from "./sync/index.mjs";
9
9
  import { Status } from "./sync/types.mjs";
10
+ import { syncOptionsKey } from "./syncOptionsKey.mjs";
10
11
  import { isBrowser } from "./util.mjs";
11
12
  const syncModuleCache = /* @__PURE__ */new Map();
12
13
  const fixtureSyncModuleCache = /* @__PURE__ */new WeakMap();
14
+ let latestSyncModule;
15
+ function rememberLatestSyncModule(sync) {
16
+ if (typeof WeakRef === "function") latestSyncModule = new WeakRef(sync);
17
+ }
13
18
  function __getActiveSyncModule() {
19
+ const latest = latestSyncModule?.deref();
20
+ if (latest) return latest;
14
21
  for (const sync of syncModuleCache.values()) return sync;
15
22
  return void 0;
16
23
  }
@@ -20,20 +27,26 @@ function getFrappeSyncModule(config) {
20
27
  }
21
28
  function getSyncModule(config) {
22
29
  if (!isBrowser()) return void 0;
30
+ const optionsKey = syncOptionsKey(config.syncOptions);
23
31
  if (config.fixtures) {
24
- let sync2 = fixtureSyncModuleCache.get(config.fixtures);
32
+ let cache = fixtureSyncModuleCache.get(config.fixtures);
33
+ if (!cache) {
34
+ cache = /* @__PURE__ */new Map();
35
+ fixtureSyncModuleCache.set(config.fixtures, cache);
36
+ }
37
+ let sync2 = cache.get(optionsKey);
25
38
  if (!sync2) {
26
39
  const db = new FixtureDbModule(config.fixtures);
27
40
  sync2 = new SyncModule(db, void 0, config.syncOptions);
28
- fixtureSyncModuleCache.set(config.fixtures, sync2);
41
+ cache.set(optionsKey, sync2);
42
+ rememberLatestSyncModule(sync2);
29
43
  }
30
44
  return sync2;
31
45
  }
32
46
  if (!config.baseURL) return void 0;
33
- const key = [config.baseURL, config.realtime === false ? "http" : "realtime", config.socketPort ?? "", config.socketBaseURL ?? "", config.siteName ?? ""].join("|");
47
+ const key = [config.baseURL, config.realtime === false ? "http" : "realtime", config.socketPort ?? "", config.socketBaseURL ?? "", config.siteName ?? "", optionsKey].join("|");
34
48
  let sync = syncModuleCache.get(key);
35
49
  if (!sync) {
36
- console.debug(`[frappe-sync] SyncModule created for ${key} (persistKey=${config.syncOptions?.persistKey ?? "none"}, cdcInterval=${config.syncOptions?.cdcInterval ?? "off"})`);
37
50
  const authConfig = config.auth ? {
38
51
  useToken: config.auth.useToken,
39
52
  token: config.auth.token,
@@ -58,6 +71,7 @@ function getSyncModule(config) {
58
71
  };
59
72
  sync = new SyncModule(db, config.realtime === false ? void 0 : new RealtimeModule(realtimeConfig), config.syncOptions);
60
73
  syncModuleCache.set(key, sync);
74
+ rememberLatestSyncModule(sync);
61
75
  }
62
76
  return sync;
63
77
  }
@@ -180,7 +194,11 @@ function cleanupEntryCollectionWhenIdle(entry) {
180
194
  };
181
195
  entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
182
196
  }
197
+ const subscribeHydration = () => () => {};
198
+ const clientCollectionAvailable = () => true;
199
+ const serverCollectionAvailable = () => false;
183
200
  function useFrappeCollection(config, doctype, options) {
201
+ const collectionAvailable = useSyncExternalStore(subscribeHydration, clientCollectionAvailable, serverCollectionAvailable);
184
202
  const errorHandlerRef = useRef(options?.onSyncError);
185
203
  errorHandlerRef.current = options?.onSyncError;
186
204
  const stableErrorHandler = useCallback(error => {
@@ -190,7 +208,7 @@ function useFrappeCollection(config, doctype, options) {
190
208
  let cache;
191
209
  let key = "";
192
210
  let entry;
193
- if (config && doctype) {
211
+ if (collectionAvailable && config && doctype) {
194
212
  const syncModule = getSyncModule(config);
195
213
  if (syncModule) {
196
214
  key = collectionOptionsKey(doctype, options);
@@ -222,34 +240,48 @@ function useFrappeCollection(config, doctype, options) {
222
240
  }, [entry, stableErrorHandler]);
223
241
  return entry ? entry.collection : void 0;
224
242
  }
243
+ const idleCatchUpState = Object.freeze({
244
+ refreshing: false,
245
+ stale: false,
246
+ error: null
247
+ });
248
+ function useFrappeCatchUp(config) {
249
+ const sync = getFrappeSyncModule(config);
250
+ const subscribe = useCallback(listener => sync?.subscribeStore(listener) ?? (() => {}), [sync]);
251
+ const snapshot = useCallback(() => sync?.getCatchUpState() ?? idleCatchUpState, [sync]);
252
+ const state = useSyncExternalStore(subscribe, snapshot, () => idleCatchUpState);
253
+ const retry = useCallback(() => sync?.catchUp() ?? Promise.resolve(idleCatchUpState), [sync]);
254
+ return useMemo(() => ({
255
+ ...state,
256
+ retry
257
+ }), [state, retry]);
258
+ }
225
259
  const DISCONNECTED_STATE = Object.freeze({
226
260
  connected: false,
227
261
  everConnected: false
228
262
  });
229
263
  function useFrappeConnection(config) {
230
264
  const [state, setState] = useState(DISCONNECTED_STATE);
265
+ const syncModule = config && !config.fixtures && config.realtime !== false ? getSyncModule(config) : void 0;
231
266
  useEffect(() => {
232
- if (!config || config.fixtures || config.realtime === false || !isBrowser()) {
267
+ if (!syncModule) {
233
268
  setState(DISCONNECTED_STATE);
234
269
  return;
235
270
  }
236
- const syncModule = getSyncModule(config);
237
- if (!syncModule) return;
238
271
  const read = () => {
239
272
  const next = syncModule.getConnectionState();
240
273
  setState(prev => prev.connected === next.connected && prev.everConnected === next.everConnected ? prev : next);
241
274
  };
242
275
  read();
243
276
  return syncModule.subscribeStore(read);
244
- }, [config?.baseURL, config?.realtime, !!config?.fixtures]);
277
+ }, [syncModule]);
245
278
  return config?.realtime === false ? DISCONNECTED_STATE : state;
246
279
  }
247
280
  function useFrappeDoctypeEvents(config, doctype, onEvent, enabled = true) {
248
281
  const handlerRef = useRef(onEvent);
249
282
  handlerRef.current = onEvent;
283
+ const syncModule = enabled && config && !config.fixtures && config.realtime !== false && doctype ? getSyncModule(config) : void 0;
250
284
  useEffect(() => {
251
- if (!enabled || !config || config.fixtures || config.realtime === false || !doctype || !isBrowser()) return;
252
- const syncModule = getSyncModule(config);
253
285
  if (!syncModule) return;
254
286
  syncModule.watchDoctype(doctype);
255
287
  const unsubscribe = syncModule.subscribeRealtimeEvents(event => {
@@ -264,21 +296,20 @@ function useFrappeDoctypeEvents(config, doctype, onEvent, enabled = true) {
264
296
  unsubscribe();
265
297
  syncModule.unwatchDoctype(doctype);
266
298
  };
267
- }, [enabled, config?.baseURL, config?.realtime, !!config?.fixtures, doctype]);
299
+ }, [syncModule, doctype]);
268
300
  }
269
301
  const EMPTY_LEDGER = [];
270
302
  function useFrappePendingMutations(config, doctype) {
271
303
  const [entries, setEntries] = useState(EMPTY_LEDGER);
272
304
  const syncModuleRef = useRef(void 0);
305
+ const syncModule = getFrappeSyncModule(config);
273
306
  useEffect(() => {
274
- if (!config || !isBrowser()) {
307
+ if (!syncModule) {
275
308
  setEntries(EMPTY_LEDGER);
276
309
  return;
277
310
  }
278
- const syncModule = getSyncModule(config);
279
- if (!syncModule) return;
280
311
  syncModuleRef.current = syncModule;
281
- let lastSignature = "";
312
+ let lastSignature;
282
313
  const read = () => {
283
314
  const next = syncModule.getMutationEntries(doctype);
284
315
  const signature = next.map(e => `${e.id}:${e.status}:${e.retryCount}`).join("|");
@@ -287,8 +318,12 @@ function useFrappePendingMutations(config, doctype) {
287
318
  setEntries(next.length === 0 ? EMPTY_LEDGER : next);
288
319
  };
289
320
  read();
290
- return syncModule.subscribeStore(read);
291
- }, [config?.baseURL, config?.realtime, !!config?.fixtures, doctype]);
321
+ const unsubscribe = syncModule.subscribeStore(read);
322
+ return () => {
323
+ unsubscribe();
324
+ syncModuleRef.current = void 0;
325
+ };
326
+ }, [syncModule, doctype]);
292
327
  const retry = useCallback(async () => {
293
328
  await syncModuleRef.current?.replayPending();
294
329
  }, []);
@@ -403,9 +438,8 @@ function useFrappeInfiniteList(options) {
403
438
  const subscriptionIdRef = useRef(void 0);
404
439
  const syncModuleRef = useRef(void 0);
405
440
  const filtersKey = JSON.stringify(filters);
441
+ const syncModule = getFrappeSyncModule(config);
406
442
  useEffect(() => {
407
- if (!config || !isBrowser()) return;
408
- const syncModule = getSyncModule(config);
409
443
  if (!syncModule) return;
410
444
  syncModuleRef.current = syncModule;
411
445
  let cancelled = false;
@@ -455,19 +489,20 @@ function useFrappeInfiniteList(options) {
455
489
  syncModule.unsubscribe(subscriptionIdRef.current);
456
490
  subscriptionIdRef.current = void 0;
457
491
  }
492
+ syncModuleRef.current = void 0;
458
493
  };
459
- }, [config?.baseURL, config?.realtime, config?.auth?.token, doctype, filtersKey, pageSize]);
494
+ }, [syncModule, config?.auth?.token, doctype, filtersKey, pageSize]);
460
495
  const loadMore = useCallback(async () => {
461
- const syncModule = syncModuleRef.current;
496
+ const syncModule2 = syncModuleRef.current;
462
497
  const subId = subscriptionIdRef.current;
463
- if (!syncModule || !subId || !hasMore || isLoadingMore) return;
498
+ if (!syncModule2 || !subId || !hasMore || isLoadingMore) return;
464
499
  setIsLoadingMore(true);
465
500
  setError(null);
466
501
  try {
467
- const currentDocs = syncModule.getDocsForSubscription(subId);
502
+ const currentDocs = syncModule2.getDocsForSubscription(subId);
468
503
  const lastDoc = currentDocs[currentDocs.length - 1];
469
504
  if (!lastDoc) return;
470
- await syncModule.getNextBatch(subId, lastDoc.name, pageSize);
505
+ await syncModule2.getNextBatch(subId, lastDoc.name, pageSize);
471
506
  } catch (err) {
472
507
  setError(err instanceof Error ? err : new Error(String(err)));
473
508
  } finally {
@@ -475,16 +510,16 @@ function useFrappeInfiniteList(options) {
475
510
  }
476
511
  }, [hasMore, isLoadingMore, pageSize]);
477
512
  const refresh = useCallback(async () => {
478
- const syncModule = syncModuleRef.current;
479
- if (!syncModule || !subscriptionIdRef.current) return;
480
- syncModule.unsubscribe(subscriptionIdRef.current);
513
+ const syncModule2 = syncModuleRef.current;
514
+ if (!syncModule2 || !subscriptionIdRef.current) return;
515
+ syncModule2.unsubscribe(subscriptionIdRef.current);
481
516
  subscriptionIdRef.current = void 0;
482
517
  setItems([]);
483
518
  setHasMore(true);
484
519
  setIsLoading(true);
485
520
  setError(null);
486
521
  try {
487
- const result = await syncModule.subscribe({
522
+ const result = await syncModule2.subscribe({
488
523
  doctype,
489
524
  fields,
490
525
  filters,
@@ -493,8 +528,8 @@ function useFrappeInfiniteList(options) {
493
528
  progressive: true
494
529
  });
495
530
  subscriptionIdRef.current = result.subscriptionId;
496
- const docs = syncModule.getDocsForSubscription(result.subscriptionId);
497
- const pageInfo = syncModule.getPageInfo(result.subscriptionId);
531
+ const docs = syncModule2.getDocsForSubscription(result.subscriptionId);
532
+ const pageInfo = syncModule2.getPageInfo(result.subscriptionId);
498
533
  setItems(transform ? docs.map(transform) : docs);
499
534
  setHasMore(pageInfo.hasMore);
500
535
  } catch (err) {
@@ -523,5 +558,5 @@ function useFrappeInfiniteList(options) {
523
558
  totalLoaded: items.length
524
559
  };
525
560
  }
526
- export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
561
+ export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCatchUp, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
527
562
  //# sourceMappingURL=frappeReact.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["isWindowDefined","useCallback","useEffect","useMemo","useRef","useState","createFrappeCollection","releaseFrappeCollectionSync","HttpClient","DbModule","FixtureDbModule","RealtimeModule","SyncModule","Status","isBrowser","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","__getActiveSyncModule","sync","values","getFrappeSyncModule","config","getSyncModule","fixtures","get","db","syncOptions","set","baseURL","key","realtime","socketPort","socketBaseURL","siteName","join","console","debug","persistKey","cdcInterval","authConfig","auth","useToken","token","type","sessionId","http","appName","realtimeConfig","socketOptions","sharedCollectionCaches","SHARED_COLLECTION_GC_MS","SHARED_COLLECTION_GC_FORCE_MS","collectionIsCleanedUp","collection","status","collectionOptionsKey","doctype","options","JSON","stringify","fields","filters","orderBy","String","limit","id","scheduleEntryGc","cache","entry","gcTimer","clearTimeout","setTimeout","refCount","cleaned","subscriberCount","gcForceDeadline","Date","now","delete","Promise","resolve","cleanup","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","useFrappeCollection","errorHandlerRef","current","stableErrorHandler","setStaleEntryBump","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","DISCONNECTED_STATE","Object","freeze","connected","everConnected","useFrappeConnection","state","setState","read","next","getConnectionState","prev","subscribeStore","useFrappeDoctypeEvents","onEvent","enabled","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","useFrappePendingMutations","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","length","retry","replayPending","dismiss","dismissMutation","pending","filter","Pending","failed","Failed","useInfiniteScroll","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","IntersectionObserver","node","disconnect","visible","isIntersecting","observe","sentinelRef","useFrappeInfiniteList","pageSize","transform","items","setItems","setHasMore","setIsLoading","setError","subscriptionIdRef","filtersKey","cancelled","result","subscribe","progressive","subscriptionId","docs","getDocsForSubscription","pageInfo","getPageInfo","err","Error","unsubStore","subId","currentDocs","lastDoc","getNextBatch","name","refresh","_isVisible","totalLoaded"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isWindowDefined","useCallback","useEffect","useMemo","useRef","useState","useSyncExternalStore","createFrappeCollection","releaseFrappeCollectionSync","HttpClient","DbModule","FixtureDbModule","RealtimeModule","SyncModule","Status","syncOptionsKey","isBrowser","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","latestSyncModule","rememberLatestSyncModule","sync","WeakRef","__getActiveSyncModule","latest","deref","values","getFrappeSyncModule","config","getSyncModule","optionsKey","syncOptions","fixtures","cache","get","set","db","baseURL","key","realtime","socketPort","socketBaseURL","siteName","join","authConfig","auth","useToken","token","type","sessionId","http","appName","realtimeConfig","socketOptions","sharedCollectionCaches","SHARED_COLLECTION_GC_MS","SHARED_COLLECTION_GC_FORCE_MS","collectionIsCleanedUp","collection","status","collectionOptionsKey","doctype","options","JSON","stringify","fields","filters","orderBy","String","limit","id","scheduleEntryGc","entry","gcTimer","clearTimeout","setTimeout","refCount","cleaned","subscriberCount","gcForceDeadline","Date","now","delete","Promise","resolve","cleanup","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","subscribeHydration","clientCollectionAvailable","serverCollectionAvailable","useFrappeCollection","collectionAvailable","errorHandlerRef","current","stableErrorHandler","setStaleEntryBump","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","idleCatchUpState","Object","freeze","refreshing","stale","useFrappeCatchUp","subscribe","listener","subscribeStore","snapshot","getCatchUpState","state","retry","catchUp","DISCONNECTED_STATE","connected","everConnected","useFrappeConnection","setState","read","next","getConnectionState","prev","useFrappeDoctypeEvents","onEvent","enabled","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","useFrappePendingMutations","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","length","replayPending","dismiss","dismissMutation","pending","filter","Pending","failed","Failed","useInfiniteScroll","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","IntersectionObserver","node","disconnect","visible","isIntersecting","observe","sentinelRef","useFrappeInfiniteList","pageSize","transform","items","setItems","setHasMore","setIsLoading","setError","subscriptionIdRef","filtersKey","cancelled","result","progressive","subscriptionId","docs","getDocsForSubscription","pageInfo","getPageInfo","err","Error","unsubStore","subId","currentDocs","lastDoc","getNextBatch","name","refresh","_isVisible","totalLoaded"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAEhC,SAASC,WAAA,EAAaC,SAAA,EAAWC,OAAA,EAASC,MAAA,EAAQC,QAAA,EAAUC,oBAAA,QAA4B;AACxF,SACEC,sBAAA,EACAC,2BAAA,QAEK;AACP,SAASC,UAAA,QAAkB;AAE3B,SAASC,QAAA,QAAgB;AACzB,SAASC,eAAA,QAAuB;AAChC,SAASC,cAAA,QAAsB;AAC/B,SAASC,UAAA,QAAkB;AAC3B,SAASC,MAAA,QAAc;AAEvB,SAASC,cAAA,QAAsB;AAC/B,SAASC,SAAA,QAAiB;AAuD1B,MAAMC,eAAA,GAAkB,mBAAIC,GAAA,CAAwB;AAGpD,MAAMC,sBAAA,GAAyB,mBAAIC,OAAA,CAGjC;AAMF,IAAIC,gBAAA;AAEJ,SAASC,yBAAyBC,IAAA,EAAwB;EACxD,IAAI,OAAOC,OAAA,KAAY,YAAYH,gBAAA,GAAmB,IAAIG,OAAA,CAAQD,IAAI;AACxE;AAOO,SAASE,sBAAA,EAAgD;EAC9D,MAAMC,MAAA,GAASL,gBAAA,EAAkBM,KAAA,CAAM;EACvC,IAAID,MAAA,EAAQ,OAAOA,MAAA;EACnB,WAAWH,IAAA,IAAQN,eAAA,CAAgBW,MAAA,CAAO,GAAG,OAAOL,IAAA;EACpD,OAAO;AACT;AASO,SAASM,oBACdC,MAAA,EACwB;EACxB,IAAI,CAACA,MAAA,EAAQ,OAAO;EACpB,OAAOC,aAAA,CAAcD,MAAM;AAC7B;AAkBA,SAASC,cAAcD,MAAA,EAA2D;EAChF,IAAI,CAACd,SAAA,CAAU,GAAG,OAAO;EACzB,MAAMgB,UAAA,GAAajB,cAAA,CAAee,MAAA,CAAOG,WAAW;EAEpD,IAAIH,MAAA,CAAOI,QAAA,EAAU;IACnB,IAAIC,KAAA,GAAQhB,sBAAA,CAAuBiB,GAAA,CAAIN,MAAA,CAAOI,QAAQ;IACtD,IAAI,CAACC,KAAA,EAAO;MACVA,KAAA,GAAQ,mBAAIjB,GAAA,CAAI;MAChBC,sBAAA,CAAuBkB,GAAA,CAAIP,MAAA,CAAOI,QAAA,EAAUC,KAAK;IACnD;IACA,IAAIZ,KAAA,GAAOY,KAAA,CAAMC,GAAA,CAAIJ,UAAU;IAC/B,IAAI,CAACT,KAAA,EAAM;MACT,MAAMe,EAAA,GAAK,IAAI3B,eAAA,CAAgBmB,MAAA,CAAOI,QAAQ;MAC9CX,KAAA,GAAO,IAAIV,UAAA,CAAWyB,EAAA,EAAI,QAAWR,MAAA,CAAOG,WAAW;MACvDE,KAAA,CAAME,GAAA,CAAIL,UAAA,EAAYT,KAAI;MAC1BD,wBAAA,CAAyBC,KAAI;IAC/B;IACA,OAAOA,KAAA;EACT;EAKA,IAAI,CAACO,MAAA,CAAOS,OAAA,EAAS,OAAO;EAQ5B,MAAMC,GAAA,GAAM,CACVV,MAAA,CAAOS,OAAA,EACPT,MAAA,CAAOW,QAAA,KAAa,QAAQ,SAAS,YACrCX,MAAA,CAAOY,UAAA,IAAc,IACrBZ,MAAA,CAAOa,aAAA,IAAiB,IACxBb,MAAA,CAAOc,QAAA,IAAY,IACnBZ,UAAA,CACF,CAAEa,IAAA,CAAK,GAAG;EACV,IAAItB,IAAA,GAAON,eAAA,CAAgBmB,GAAA,CAAII,GAAG;EAClC,IAAI,CAACjB,IAAA,EAAM;IACT,MAAMuB,UAAA,GAAqChB,MAAA,CAAOiB,IAAA,GAC9C;MACEC,QAAA,EAAUlB,MAAA,CAAOiB,IAAA,CAAKC,QAAA;MACtBC,KAAA,EAAOnB,MAAA,CAAOiB,IAAA,CAAKE,KAAA;MACnBC,IAAA,EAAMpB,MAAA,CAAOiB,IAAA,CAAKG,IAAA;MAClBC,SAAA,EAAWrB,MAAA,CAAOiB,IAAA,CAAKI;IACzB,IACA;IACJ,MAAMC,IAAA,GAAO,IAAI3C,UAAA,CAAWqB,MAAA,CAAOS,OAAA,EAASO,UAAU;IACtD,MAAMR,EAAA,GAAK,IAAI5B,QAAA,CAAS0C,IAAA,EAAM;MAAEC,OAAA,EAAS;IAAY,CAAC;IACtD,MAAMC,cAAA,GAAiB;MACrBf,OAAA,EAAST,MAAA,CAAOS,OAAA;MAChBG,UAAA,EAAYZ,MAAA,CAAOY,UAAA;MACnBC,aAAA,EAAeb,MAAA,CAAOa,aAAA;MAAA;MAAA;MAAA;MAAA;MAKtBC,QAAA,EAAUd,MAAA,CAAOc,QAAA;MACjBG,IAAA,EAAMD,UAAA;MACNS,aAAA,EAAezB,MAAA,CAAOyB;IACxB;IACAhC,IAAA,GAAO,IAAIV,UAAA,CACTyB,EAAA,EACAR,MAAA,CAAOW,QAAA,KAAa,QAAQ,SAAY,IAAI7B,cAAA,CAAe0C,cAAc,GACzExB,MAAA,CAAOG,WACT;IACAhB,eAAA,CAAgBoB,GAAA,CAAIG,GAAA,EAAKjB,IAAI;IAC7BD,wBAAA,CAAyBC,IAAI;EAC/B;EACA,OAAOA,IAAA;AACT;AAiDA,MAAMiC,sBAAA,GAAyB,mBAAIpC,OAAA,CAAwD;AAI3F,MAAMqC,uBAAA,GAA0B;AAUhC,MAAMC,6BAAA,GAAgC;AAMtC,SAASC,sBAAsBC,UAAA,EAA8C;EAC3E,OAAQA,UAAA,CAAmCC,MAAA,KAAW;AACxD;AAGA,SAASC,qBACPC,OAAA,EACAC,OAAA,EACQ;EACR,OAAO,CACLD,OAAA,EACAE,IAAA,CAAKC,SAAA,CAAUF,OAAA,EAASG,MAAM,GAC9BF,IAAA,CAAKC,SAAA,CAAUF,OAAA,EAASI,OAAO,GAC/BH,IAAA,CAAKC,SAAA,CAAUF,OAAA,EAASK,OAAO,GAC/BC,MAAA,CAAON,OAAA,EAASO,KAAK,GACrBD,MAAA,CAAON,OAAA,EAASQ,EAAE,EACpB,CAAE3B,IAAA,CAAK,GAAG;AACZ;AAEA,SAAS4B,gBACPtC,KAAA,EACAK,GAAA,EACAkC,KAAA,EACM;EACN,IAAIA,KAAA,CAAMC,OAAA,EAASC,YAAA,CAAaF,KAAA,CAAMC,OAAO;EAC7CD,KAAA,CAAMC,OAAA,GAAUE,UAAA,CAAW,MAAM;IAC/BH,KAAA,CAAMC,OAAA,GAAU;IAChB,IAAID,KAAA,CAAMI,QAAA,GAAW,KAAKJ,KAAA,CAAMK,OAAA,EAAS;IAUzC,MAAMC,eAAA,GAAmBN,KAAA,CAAMd,UAAA,CAA4CoB,eAAA,IAAmB;IAC9F,IAAIA,eAAA,GAAkB,GAAG;MACvBN,KAAA,CAAMO,eAAA,KAAoBC,IAAA,CAAKC,GAAA,CAAI,IAAIzB,6BAAA;MACvC,IAAIwB,IAAA,CAAKC,GAAA,CAAI,IAAIT,KAAA,CAAMO,eAAA,EAAiB;QACtCR,eAAA,CAAgBtC,KAAA,EAAOK,GAAA,EAAKkC,KAAK;QACjC;MACF;MAYAA,KAAA,CAAMK,OAAA,GAAU;MAChBL,KAAA,CAAMO,eAAA,GAAkB;MACxB,IAAI9C,KAAA,CAAMC,GAAA,CAAII,GAAG,MAAMkC,KAAA,EAAOvC,KAAA,CAAMiD,MAAA,CAAO5C,GAAG;MAC9C,IAAIhC,2BAAA,CAA4BkE,KAAA,CAAMd,UAAU,GAAG;IAGrD;IACAc,KAAA,CAAMK,OAAA,GAAU;IAChBL,KAAA,CAAMO,eAAA,GAAkB;IACxB,IAAI9C,KAAA,CAAMC,GAAA,CAAII,GAAG,MAAMkC,KAAA,EAAOvC,KAAA,CAAMiD,MAAA,CAAO5C,GAAG;IAK9C6C,OAAA,CAAQC,OAAA,CAAQZ,KAAA,CAAMd,UAAA,CAAW2B,OAAA,GAAU,CAAC,EAAEC,KAAA,CAAM,MAAM,CAAC,CAAC;EAC9D,GAAG/B,uBAAuB;AAC5B;AAEA,SAASgC,4BACPC,UAAA,EACA3B,OAAA,EACAC,OAAA,EACAxB,GAAA,EAC6E;EAC7E,IAAImD,aAAA,GAAgBnC,sBAAA,CAAuBpB,GAAA,CAAIsD,UAAU;EACzD,IAAI,CAACC,aAAA,EAAe;IAClBA,aAAA,GAAgB,mBAAIzE,GAAA,CAAI;IACxBsC,sBAAA,CAAuBnB,GAAA,CAAIqD,UAAA,EAAYC,aAAa;EACtD;EACA,MAAMxD,KAAA,GAAQwD,aAAA;EACd,IAAIjB,KAAA,GAAQvC,KAAA,CAAMC,GAAA,CAAII,GAAG;EAIzB,IAAIkC,KAAA,IAAS,CAACA,KAAA,CAAMK,OAAA,IAAWpB,qBAAA,CAAsBe,KAAA,CAAMd,UAAU,GAAG;IACtEc,KAAA,CAAMK,OAAA,GAAU;IAChB,IAAIL,KAAA,CAAMC,OAAA,EAAS;MACjBC,YAAA,CAAaF,KAAA,CAAMC,OAAO;MAC1BD,KAAA,CAAMC,OAAA,GAAU;IAClB;EACF;EACA,IAAI,CAACD,KAAA,IAASA,KAAA,CAAMK,OAAA,EAAS;IAC3B,MAAMa,OAAA,GAAiC;MACrChC,UAAA,EAAY;MACZkB,QAAA,EAAU;MACVH,OAAA,EAAS;MACTM,eAAA,EAAiB;MACjBY,aAAA,EAAe,mBAAIC,GAAA,CAAI;MACvBC,YAAA,EAAc;MACdC,aAAA,EAAe;MACfjB,OAAA,EAAS;IACX;IACAa,OAAA,CAAQhC,UAAA,GAAarD,sBAAA,CAA6BwD,OAAA,EAAS;MACzD,GAAGC,OAAA;MACHzC,IAAA,EAAMmE,UAAA;MACNO,WAAA,EAAcC,KAAA,IAAU;QACtBN,OAAA,CAAQG,YAAA,GAAe;QACvBH,OAAA,CAAQI,aAAA,GAAgBE,KAAA;QAUxB,WAAWC,OAAA,IAAWP,OAAA,CAAQC,aAAA,EAAeM,OAAA,CAAQD,KAAK;MAC5D;IACF,CAAC;IACD/D,KAAA,CAAME,GAAA,CAAIG,GAAA,EAAKoD,OAAO;IAGtBnB,eAAA,CAAgBtC,KAAA,EAAOK,GAAA,EAAKoD,OAAO;IACnClB,KAAA,GAAQkB,OAAA;EACV;EACA,OAAO;IAAEzD,KAAA;IAAOuC;EAAM;AACxB;AAEA,SAAS0B,uBACP1B,KAAA,EACAuB,WAAA,EACM;EACNvB,KAAA,CAAMI,QAAA;EACN,IAAIJ,KAAA,CAAMC,OAAA,EAAS;IACjBC,YAAA,CAAaF,KAAA,CAAMC,OAAO;IAC1BD,KAAA,CAAMC,OAAA,GAAU;EAClB;EACAD,KAAA,CAAMO,eAAA,GAAkB;EACxBP,KAAA,CAAMmB,aAAA,CAAcQ,GAAA,CAAIJ,WAAW;EACnC,IAAIvB,KAAA,CAAMqB,YAAA,EAAcE,WAAA,CAAYvB,KAAA,CAAMsB,aAAa;AACzD;AAEA,SAASM,wBACPnE,KAAA,EACAK,GAAA,EACAkC,KAAA,EACAuB,WAAA,EACM;EACNvB,KAAA,CAAMmB,aAAA,CAAcT,MAAA,CAAOa,WAAW;EACtCvB,KAAA,CAAMI,QAAA,GAAWyB,IAAA,CAAKC,GAAA,CAAI,GAAG9B,KAAA,CAAMI,QAAA,GAAW,CAAC;EAC/C,IAAIJ,KAAA,CAAMI,QAAA,GAAW,KAAKJ,KAAA,CAAMK,OAAA,EAAS;EACzC,IAAIL,KAAA,CAAMqB,YAAA,EAAc;IAUtBrB,KAAA,CAAMK,OAAA,GAAU;IAChB,IAAIL,KAAA,CAAMC,OAAA,EAAS;MACjBC,YAAA,CAAaF,KAAA,CAAMC,OAAO;MAC1BD,KAAA,CAAMC,OAAA,GAAU;IAClB;IACAD,KAAA,CAAMO,eAAA,GAAkB;IACxB,IAAI9C,KAAA,CAAMC,GAAA,CAAII,GAAG,MAAMkC,KAAA,EAAOvC,KAAA,CAAMiD,MAAA,CAAO5C,GAAG;IAC9CiE,8BAAA,CAA+B/B,KAAK;IACpC;EACF;EACAD,eAAA,CAAgBtC,KAAA,EAAOK,GAAA,EAAKkC,KAAK;AACnC;AAUA,SAAS+B,+BAA+B/B,KAAA,EAAoC;EAC1E,MAAMgC,QAAA,GAAWxB,IAAA,CAAKC,GAAA,CAAI,IAAIzB,6BAAA;EAC9B,MAAMiD,IAAA,GAAOA,CAAA,KAAM;IACjBjC,KAAA,CAAMC,OAAA,GAAU;IAChB,MAAMK,eAAA,GAAmBN,KAAA,CAAMd,UAAA,CAA4CoB,eAAA,IAAmB;IAC9F,IAAIA,eAAA,GAAkB,GAAG;MACvB,IAAIE,IAAA,CAAKC,GAAA,CAAI,IAAIuB,QAAA,EAAU;QACzBhC,KAAA,CAAMC,OAAA,GAAUE,UAAA,CAAW8B,IAAA,EAAMlD,uBAAuB;QACxD;MACF;MAKA,IAAIjD,2BAAA,CAA4BkE,KAAA,CAAMd,UAAU,GAAG;IACrD;IACAyB,OAAA,CAAQC,OAAA,CAAQZ,KAAA,CAAMd,UAAA,CAAW2B,OAAA,GAAU,CAAC,EAAEC,KAAA,CAAM,MAAM,CAAC,CAAC;EAC9D;EACAd,KAAA,CAAMC,OAAA,GAAUE,UAAA,CAAW8B,IAAA,EAAMlD,uBAAuB;AAC1D;AAEA,MAAMmD,kBAAA,GAAqBA,CAAA,KAAM,MAAM,CAAC;AACxC,MAAMC,yBAAA,GAA4BA,CAAA,KAAM;AACxC,MAAMC,yBAAA,GAA4BA,CAAA,KAAM;AA+CjC,SAASC,oBACdjF,MAAA,EACAiC,OAAA,EACAC,OAAA,EACsC;EAGtC,MAAMgD,mBAAA,GAAsB1G,oBAAA,CAC1BsG,kBAAA,EACAC,yBAAA,EACAC,yBACF;EAGA,MAAMG,eAAA,GAAkB7G,MAAA,CAAO4D,OAAA,EAASiC,WAAW;EACnDgB,eAAA,CAAgBC,OAAA,GAAUlD,OAAA,EAASiC,WAAA;EACnC,MAAMkB,kBAAA,GAAqBlH,WAAA,CAAaiG,KAAA,IAAmB;IACzDe,eAAA,CAAgBC,OAAA,GAAUhB,KAAK;EACjC,GAAG,EAAE;EAEL,MAAM,GAAGkB,iBAAiB,IAAI/G,QAAA,CAAS,CAAC;EASxC,IAAI8B,KAAA;EACJ,IAAIK,GAAA,GAAM;EACV,IAAIkC,KAAA;EACJ,IAAIsC,mBAAA,IAAuBlF,MAAA,IAAUiC,OAAA,EAAS;IAC5C,MAAM2B,UAAA,GAAa3D,aAAA,CAAcD,MAAM;IACvC,IAAI4D,UAAA,EAAY;MACdlD,GAAA,GAAMsB,oBAAA,CAAqBC,OAAA,EAASC,OAAO;MAC3C,CAAC;QAAE7B,KAAA;QAAOuC;MAAM,IAAIe,2BAAA,CAAkCC,UAAA,EAAY3B,OAAA,EAASC,OAAA,EAASxB,GAAG;IACzF;EACF;EAEAtC,SAAA,CAAU,MAAM;IACd,IAAI,CAACwE,KAAA,IAAS,CAACvC,KAAA,EAAO;IACtB,IAAIuC,KAAA,CAAMK,OAAA,IAAWpB,qBAAA,CAAsBe,KAAA,CAAMd,UAAU,GAAG;MAG5DwD,iBAAA,CAAmBC,CAAA,IAAMA,CAAA,GAAI,CAAC;MAC9B;IACF;IACA,MAAMC,QAAA,GAAW5C,KAAA;IACjB,MAAM6C,aAAA,GAAgBpF,KAAA;IACtB,MAAMqF,WAAA,GAAchF,GAAA;IACpB4D,sBAAA,CAAuBkB,QAAA,EAAUH,kBAAkB;IAMnD,MAAMM,iBAAA,GACJH,QAAA,CAAS1D,UAAA,CAGT8D,EAAA,GAAK,iBAAkBC,KAAA,IAAU;MACjC,IAAIA,KAAA,EAAO9D,MAAA,KAAW,gBAAgByD,QAAA,CAASvC,OAAA,EAAS;MACxDuC,QAAA,CAASvC,OAAA,GAAU;MACnBqC,iBAAA,CAAmBC,CAAA,IAAMA,CAAA,GAAI,CAAC;IAChC,CAAC;IACD,OAAO,MAAM;MACXI,iBAAA,GAAoB;MACpBnB,uBAAA,CAAwBiB,aAAA,EAAeC,WAAA,EAAaF,QAAA,EAAUH,kBAAkB;IAClF;EAEF,GAAG,CAACzC,KAAA,EAAOyC,kBAAkB,CAAC;EAE9B,OAAOzC,KAAA,GAASA,KAAA,CAAMd,UAAA,GAA0C;AAClE;AAUA,MAAMgE,gBAAA,GAAqCC,MAAA,CAAOC,MAAA,CAAO;EACvDC,UAAA,EAAY;EACZC,KAAA,EAAO;EACP9B,KAAA,EAAO;AACT,CAAC;AAGM,SAAS+B,iBACdnG,MAAA,EACwB;EACxB,MAAMP,IAAA,GAAOM,mBAAA,CAAoBC,MAAM;EACvC,MAAMoG,SAAA,GAAYjI,WAAA,CACfkI,QAAA,IAAyB5G,IAAA,EAAM6G,cAAA,CAAeD,QAAQ,MAAM,MAAM,CAAC,IACpE,CAAC5G,IAAI,CACP;EACA,MAAM8G,QAAA,GAAWpI,WAAA,CAAY,MAAMsB,IAAA,EAAM+G,eAAA,CAAgB,KAAKV,gBAAA,EAAkB,CAACrG,IAAI,CAAC;EACtF,MAAMgH,KAAA,GAAQjI,oBAAA,CAAqB4H,SAAA,EAAWG,QAAA,EAAU,MAAMT,gBAAgB;EAC9E,MAAMY,KAAA,GAAQvI,WAAA,CAAY,MAAMsB,IAAA,EAAMkH,OAAA,CAAQ,KAAKpD,OAAA,CAAQC,OAAA,CAAQsC,gBAAgB,GAAG,CAACrG,IAAI,CAAC;EAC5F,OAAOpB,OAAA,CAAQ,OAAO;IAAE,GAAGoI,KAAA;IAAOC;EAAM,IAAI,CAACD,KAAA,EAAOC,KAAK,CAAC;AAC5D;AAUA,MAAME,kBAAA,GAA4Cb,MAAA,CAAOC,MAAA,CAAO;EAC9Da,SAAA,EAAW;EACXC,aAAA,EAAe;AACjB,CAAC;AAUM,SAASC,oBACd/G,MAAA,EACuB;EACvB,MAAM,CAACyG,KAAA,EAAOO,QAAQ,IAAIzI,QAAA,CAAgCqI,kBAAkB;EAC5E,MAAMhD,UAAA,GACJ5D,MAAA,IAAU,CAACA,MAAA,CAAOI,QAAA,IAAYJ,MAAA,CAAOW,QAAA,KAAa,QAAQV,aAAA,CAAcD,MAAM,IAAI;EAEpF5B,SAAA,CAAU,MAAM;IACd,IAAI,CAACwF,UAAA,EAAY;MACfoD,QAAA,CAASJ,kBAAkB;MAC3B;IACF;IAEA,MAAMK,IAAA,GAAOA,CAAA,KAAM;MACjB,MAAMC,IAAA,GAAOtD,UAAA,CAAWuD,kBAAA,CAAmB;MAC3CH,QAAA,CAAUI,IAAA,IACRA,IAAA,CAAKP,SAAA,KAAcK,IAAA,CAAKL,SAAA,IAAaO,IAAA,CAAKN,aAAA,KAAkBI,IAAA,CAAKJ,aAAA,GAC7DM,IAAA,GACAF,IACN;IACF;IACAD,IAAA,CAAK;IACL,OAAOrD,UAAA,CAAW0C,cAAA,CAAeW,IAAI;EAEvC,GAAG,CAACrD,UAAU,CAAC;EAEf,OAAO5D,MAAA,EAAQW,QAAA,KAAa,QAAQiG,kBAAA,GAAqBH,KAAA;AAC3D;AAUO,SAASY,uBACdrH,MAAA,EACAiC,OAAA,EACAqF,OAAA,EACAC,OAAA,GAAU,MACJ;EACN,MAAMC,UAAA,GAAalJ,MAAA,CAAOgJ,OAAO;EACjCE,UAAA,CAAWpC,OAAA,GAAUkC,OAAA;EACrB,MAAM1D,UAAA,GACJ2D,OAAA,IAAWvH,MAAA,IAAU,CAACA,MAAA,CAAOI,QAAA,IAAYJ,MAAA,CAAOW,QAAA,KAAa,SAASsB,OAAA,GAClEhC,aAAA,CAAcD,MAAM,IACpB;EAEN5B,SAAA,CAAU,MAAM;IACd,IAAI,CAACwF,UAAA,EAAY;IAEjBA,UAAA,CAAW6D,YAAA,CAAaxF,OAAO;IAC/B,MAAMyF,WAAA,GAAc9D,UAAA,CAAW+D,uBAAA,CAAyB9B,KAAA,IAAU;MAChE,MAAM+B,OAAA,GAAU/B,KAAA,CAAM+B,OAAA;MACtB,IAAIA,OAAA,EAAS3F,OAAA,IAAW2F,OAAA,CAAQ3F,OAAA,KAAYA,OAAA,EAAS;MACrDuF,UAAA,CAAWpC,OAAA,CAAQ;QAAEhE,IAAA,EAAMyE,KAAA,CAAMzE,IAAA;QAAgBwG,OAAA,EAAS/B,KAAA,CAAM+B;MAAQ,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM;MACXF,WAAA,CAAY;MACZ9D,UAAA,CAAWiE,cAAA,CAAe5F,OAAO;IACnC;EAEF,GAAG,CAAC2B,UAAA,EAAY3B,OAAO,CAAC;AAC1B;AAqBA,MAAM6F,YAAA,GAAqC,EAAC;AAYrC,SAASC,0BACd/H,MAAA,EACAiC,OAAA,EACiC;EACjC,MAAM,CAAC+F,OAAA,EAASC,UAAU,IAAI1J,QAAA,CAA+BuJ,YAAY;EACzE,MAAMI,aAAA,GAAgB5J,MAAA,CAA+B,MAAS;EAC9D,MAAMsF,UAAA,GAAa7D,mBAAA,CAAoBC,MAAM;EAE7C5B,SAAA,CAAU,MAAM;IACd,IAAI,CAACwF,UAAA,EAAY;MACfqE,UAAA,CAAWH,YAAY;MACvB;IACF;IACAI,aAAA,CAAc9C,OAAA,GAAUxB,UAAA;IAExB,IAAIuE,aAAA;IACJ,MAAMlB,IAAA,GAAOA,CAAA,KAAM;MACjB,MAAMC,IAAA,GAAOtD,UAAA,CAAWwE,kBAAA,CAAmBnG,OAAO;MAClD,MAAMoG,SAAA,GAAYnB,IAAA,CAAKoB,GAAA,CAAKC,CAAA,IAAM,GAAGA,CAAA,CAAE7F,EAAE,IAAI6F,CAAA,CAAExG,MAAM,IAAIwG,CAAA,CAAEC,UAAU,EAAE,EAAEzH,IAAA,CAAK,GAAG;MACjF,IAAIsH,SAAA,KAAcF,aAAA,EAAe;MACjCA,aAAA,GAAgBE,SAAA;MAChBJ,UAAA,CAAWf,IAAA,CAAKuB,MAAA,KAAW,IAAIX,YAAA,GAAeZ,IAAI;IACpD;IACAD,IAAA,CAAK;IACL,MAAMS,WAAA,GAAc9D,UAAA,CAAW0C,cAAA,CAAeW,IAAI;IAClD,OAAO,MAAM;MACXS,WAAA,CAAY;MACZQ,aAAA,CAAc9C,OAAA,GAAU;IAC1B;EAEF,GAAG,CAACxB,UAAA,EAAY3B,OAAO,CAAC;EAExB,MAAMyE,KAAA,GAAQvI,WAAA,CAAY,YAAY;IACpC,MAAM+J,aAAA,CAAc9C,OAAA,EAASsD,aAAA,CAAc;EAC7C,GAAG,EAAE;EAEL,MAAMC,OAAA,GAAUxK,WAAA,CAAauE,EAAA,IAAe;IAC1CwF,aAAA,CAAc9C,OAAA,EAASwD,eAAA,CAAgBlG,EAAE;EAC3C,GAAG,EAAE;EAEL,OAAOrE,OAAA,CAAQ,MAAM;IACnB,MAAMwK,OAAA,GAAUb,OAAA,CAAQc,MAAA,CAAQP,CAAA,IAAMA,CAAA,CAAExG,MAAA,KAAW/C,MAAA,CAAO+J,OAAO;IACjE,MAAMC,MAAA,GAAShB,OAAA,CAAQc,MAAA,CAAQP,CAAA,IAAMA,CAAA,CAAExG,MAAA,KAAW/C,MAAA,CAAOiK,MAAM;IAC/D,OAAO;MAAEjB,OAAA;MAASa,OAAA;MAASG,MAAA;MAAQtC,KAAA;MAAOiC;IAAQ;EACpD,GAAG,CAACX,OAAA,EAAStB,KAAA,EAAOiC,OAAO,CAAC;AAC9B;AAyEO,SAASO,kBAAkBlJ,MAAA,EAA0D;EAC1F,MAAM;IACJmJ,OAAA;IACAC,SAAA;IACAC,UAAA;IACAC,IAAA,GAAO;IACPC,UAAA,GAAa;IACbC,SAAA,GAAY;IACZC,UAAA,GAAa;IACblC,OAAA,GAAU;EACZ,IAAIvH,MAAA;EAEJ,MAAM,CAAC0J,SAAA,EAAWC,YAAY,IAAIpL,QAAA,CAAS,KAAK;EAChD,MAAM,CAACqL,aAAA,EAAeC,gBAAgB,IAAItL,QAAA,CAAS,KAAK;EACxD,MAAMuL,WAAA,GAAcxL,MAAA,CAAoC,IAAI;EAC5D,MAAMyL,eAAA,GAAkBzL,MAAA,CAAuB,IAAI;EACnD,MAAM0L,gBAAA,GAAmB1L,MAAA,CAA6C,IAAI;EAC1E,MAAM2L,eAAA,GAAkB3L,MAAA,CAAe,CAAC;EAGxC,MAAM4L,QAAA,GAAW/L,WAAA,CAAY,YAAY;IACvC,IAAI,CAACgL,OAAA,IAAWC,SAAA,IAAaQ,aAAA,EAAe;IAG5C,MAAMvG,GAAA,GAAMD,IAAA,CAAKC,GAAA,CAAI;IACrB,IAAIA,GAAA,GAAM4G,eAAA,CAAgB7E,OAAA,GAAUqE,UAAA,EAAY;IAChDQ,eAAA,CAAgB7E,OAAA,GAAU/B,GAAA;IAE1BwG,gBAAA,CAAiB,IAAI;IACrB,IAAI;MACF,MAAMR,UAAA,CAAW;IACnB,UAAE;MACAQ,gBAAA,CAAiB,KAAK;IACxB;EACF,GAAG,CAACV,OAAA,EAASC,SAAA,EAAWQ,aAAA,EAAeP,UAAA,EAAYI,UAAU,CAAC;EAM9DrL,SAAA,CAAU,MAAM;IACd,IAAI,CAACF,eAAA,IAAmB,OAAOiM,oBAAA,KAAyB,eAAe,CAAC5C,OAAA,EAAS;IAEjF,MAAM6C,IAAA,GAAOL,eAAA,CAAgB3E,OAAA;IAC7B,IAAI,CAACgF,IAAA,EAAM;IAGX,IAAIN,WAAA,CAAY1E,OAAA,EAAS;MACvB0E,WAAA,CAAY1E,OAAA,CAAQiF,UAAA,CAAW;IACjC;IAEAP,WAAA,CAAY1E,OAAA,GAAU,IAAI+E,oBAAA,CACvBnC,OAAA,IAAY;MACX,MAAMpF,KAAA,GAAQoF,OAAA,CAAQ,CAAC;MACvB,MAAMsC,OAAA,GAAU1H,KAAA,EAAO2H,cAAA,IAAkB;MACzCZ,YAAA,CAAaW,OAAO;MAEpB,IAAIA,OAAA,IAAWnB,OAAA,IAAW,CAACC,SAAA,IAAa,CAACQ,aAAA,EAAe;QAEtD,IAAII,gBAAA,CAAiB5E,OAAA,EAAS;UAC5BtC,YAAA,CAAakH,gBAAA,CAAiB5E,OAAO;QACvC;QAEA4E,gBAAA,CAAiB5E,OAAA,GAAUrC,UAAA,CAAW,MAAM;UAC1CmH,QAAA,CAAS;QACX,GAAGT,UAAU;MACf;IACF,GACA;MACEH,IAAA;MACAC,UAAA;MACAC;IACF,CACF;IAEAM,WAAA,CAAY1E,OAAA,CAAQoF,OAAA,CAAQJ,IAAI;IAEhC,OAAO,MAAM;MACX,IAAIN,WAAA,CAAY1E,OAAA,EAAS;QACvB0E,WAAA,CAAY1E,OAAA,CAAQiF,UAAA,CAAW;QAC/BP,WAAA,CAAY1E,OAAA,GAAU;MACxB;MACA,IAAI4E,gBAAA,CAAiB5E,OAAA,EAAS;QAC5BtC,YAAA,CAAakH,gBAAA,CAAiB5E,OAAO;QACrC4E,gBAAA,CAAiB5E,OAAA,GAAU;MAC7B;IACF;EACF,GAAG,CACDmC,OAAA,EACA+B,IAAA,EACAC,UAAA,EACAC,SAAA,EACAL,OAAA,EACAC,SAAA,EACAQ,aAAA,EACAM,QAAA,EACAT,UAAA,CACD;EAGD,MAAMgB,WAAA,GAActM,WAAA,CAAaiM,IAAA,IAAyB;IACxDL,eAAA,CAAgB3E,OAAA,GAAUgF,IAAA;IAG1B,IAAIN,WAAA,CAAY1E,OAAA,IAAWgF,IAAA,EAAM;MAC/BN,WAAA,CAAY1E,OAAA,CAAQiF,UAAA,CAAW;MAC/BP,WAAA,CAAY1E,OAAA,CAAQoF,OAAA,CAAQJ,IAAI;IAClC;EACF,GAAG,EAAE;EAEL,OAAO;IACLK,WAAA;IACAf,SAAA;IACAE;EACF;AACF;AAuFO,SAASc,sBACdxI,OAAA,EACmC;EACnC,MAAM;IAAElC,MAAA;IAAQiC,OAAA;IAASI,MAAA;IAAQC,OAAA;IAASC,OAAA;IAASoI,QAAA,GAAW;IAAIC;EAAU,IAAI1I,OAAA;EAEhF,MAAM,CAAC2I,KAAA,EAAOC,QAAQ,IAAIvM,QAAA,CAAiB,EAAE;EAC7C,MAAM,CAAC4K,OAAA,EAAS4B,UAAU,IAAIxM,QAAA,CAAS,IAAI;EAC3C,MAAM,CAAC6K,SAAA,EAAW4B,YAAY,IAAIzM,QAAA,CAAS,IAAI;EAC/C,MAAM,CAACqL,aAAA,EAAeC,gBAAgB,IAAItL,QAAA,CAAS,KAAK;EACxD,MAAM,CAAC6F,KAAA,EAAO6G,QAAQ,IAAI1M,QAAA,CAAuB,IAAI;EAErD,MAAM2M,iBAAA,GAAoB5M,MAAA,CAA2B,MAAS;EAC9D,MAAM4J,aAAA,GAAgB5J,MAAA,CAA+B,MAAS;EAG9D,MAAM6M,UAAA,GAAahJ,IAAA,CAAKC,SAAA,CAAUE,OAAO;EACzC,MAAMsB,UAAA,GAAa7D,mBAAA,CAAoBC,MAAM;EAG7C5B,SAAA,CAAU,MAAM;IACd,IAAI,CAACwF,UAAA,EAAY;IACjBsE,aAAA,CAAc9C,OAAA,GAAUxB,UAAA;IAExB,IAAIwH,SAAA,GAAY;IAChBJ,YAAA,CAAa,IAAI;IACjBC,QAAA,CAAS,IAAI;IAEb,CAAC,YAAY;MACX,IAAI;QACF,MAAMI,MAAA,GAAS,MAAMzH,UAAA,CAAWwC,SAAA,CAAU;UACxCnE,OAAA;UACAI,MAAA;UACAC,OAAA;UACAC,OAAA;UACAE,KAAA,EAAOkI,QAAA;UACPW,WAAA,EAAa;QACf,CAAC;QACD,IAAIF,SAAA,EAAW;UACbxH,UAAA,CAAW8D,WAAA,CAAY2D,MAAA,CAAOE,cAAc;UAC5C;QACF;QACAL,iBAAA,CAAkB9F,OAAA,GAAUiG,MAAA,CAAOE,cAAA;QAEnC,MAAMC,IAAA,GAAO5H,UAAA,CAAW6H,sBAAA,CAA6BJ,MAAA,CAAOE,cAAc;QAC1E,MAAMG,QAAA,GAAW9H,UAAA,CAAW+H,WAAA,CAAYN,MAAA,CAAOE,cAAc;QAC7DT,QAAA,CAASF,SAAA,GAAYY,IAAA,CAAKlD,GAAA,CAAIsC,SAAS,IAAIY,IAAI;QAC/CT,UAAA,CAAWW,QAAA,CAASvC,OAAO;MAC7B,SAASyC,GAAA,EAAK;QACZ,IAAI,CAACR,SAAA,EAAW;UACdH,QAAA,CAASW,GAAA,YAAeC,KAAA,GAAQD,GAAA,GAAM,IAAIC,KAAA,CAAMrJ,MAAA,CAAOoJ,GAAG,CAAC,CAAC;UAC5Dd,QAAA,CAAS,EAAE;UACXC,UAAA,CAAW,KAAK;QAClB;MACF,UAAE;QACA,IAAI,CAACK,SAAA,EAAWJ,YAAA,CAAa,KAAK;MACpC;IACF,GAAG;IAGH,MAAMc,UAAA,GAAalI,UAAA,CAAW0C,cAAA,CAAe,MAAM;MACjD,MAAMyF,KAAA,GAAQb,iBAAA,CAAkB9F,OAAA;MAChC,IAAI,CAAC2G,KAAA,EAAO;MACZ,MAAMP,IAAA,GAAO5H,UAAA,CAAW6H,sBAAA,CAA6BM,KAAK;MAC1D,MAAML,QAAA,GAAW9H,UAAA,CAAW+H,WAAA,CAAYI,KAAK;MAC7CjB,QAAA,CAASF,SAAA,GAAYY,IAAA,CAAKlD,GAAA,CAAIsC,SAAS,IAAIY,IAAI;MAC/CT,UAAA,CAAWW,QAAA,CAASvC,OAAO;IAC7B,CAAC;IAED,OAAO,MAAM;MACXiC,SAAA,GAAY;MACZU,UAAA,CAAW;MACX,IAAIZ,iBAAA,CAAkB9F,OAAA,EAAS;QAC7BxB,UAAA,CAAW8D,WAAA,CAAYwD,iBAAA,CAAkB9F,OAAO;QAChD8F,iBAAA,CAAkB9F,OAAA,GAAU;MAC9B;MACA8C,aAAA,CAAc9C,OAAA,GAAU;IAC1B;EAEF,GAAG,CAACxB,UAAA,EAAY5D,MAAA,EAAQiB,IAAA,EAAME,KAAA,EAAOc,OAAA,EAASkJ,UAAA,EAAYR,QAAQ,CAAC;EAEnE,MAAMT,QAAA,GAAW/L,WAAA,CAAY,YAAY;IACvC,MAAMyF,WAAA,GAAasE,aAAA,CAAc9C,OAAA;IACjC,MAAM2G,KAAA,GAAQb,iBAAA,CAAkB9F,OAAA;IAChC,IAAI,CAACxB,WAAA,IAAc,CAACmI,KAAA,IAAS,CAAC5C,OAAA,IAAWS,aAAA,EAAe;IAExDC,gBAAA,CAAiB,IAAI;IACrBoB,QAAA,CAAS,IAAI;IAEb,IAAI;MACF,MAAMe,WAAA,GAAcpI,WAAA,CAAW6H,sBAAA,CAA6BM,KAAK;MACjE,MAAME,OAAA,GAAUD,WAAA,CAAYA,WAAA,CAAYvD,MAAA,GAAS,CAAC;MAClD,IAAI,CAACwD,OAAA,EAAS;MAEd,MAAMrI,WAAA,CAAWsI,YAAA,CAAaH,KAAA,EAAOE,OAAA,CAAQE,IAAA,EAAMxB,QAAQ;IAE7D,SAASiB,GAAA,EAAK;MACZX,QAAA,CAASW,GAAA,YAAeC,KAAA,GAAQD,GAAA,GAAM,IAAIC,KAAA,CAAMrJ,MAAA,CAAOoJ,GAAG,CAAC,CAAC;IAC9D,UAAE;MACA/B,gBAAA,CAAiB,KAAK;IACxB;EACF,GAAG,CAACV,OAAA,EAASS,aAAA,EAAee,QAAQ,CAAC;EAErC,MAAMyB,OAAA,GAAUjO,WAAA,CAAY,YAAY;IACtC,MAAMyF,WAAA,GAAasE,aAAA,CAAc9C,OAAA;IACjC,IAAI,CAACxB,WAAA,IAAc,CAACsH,iBAAA,CAAkB9F,OAAA,EAAS;IAG/CxB,WAAA,CAAW8D,WAAA,CAAYwD,iBAAA,CAAkB9F,OAAO;IAChD8F,iBAAA,CAAkB9F,OAAA,GAAU;IAC5B0F,QAAA,CAAS,EAAE;IACXC,UAAA,CAAW,IAAI;IACfC,YAAA,CAAa,IAAI;IACjBC,QAAA,CAAS,IAAI;IAEb,IAAI;MACF,MAAMI,MAAA,GAAS,MAAMzH,WAAA,CAAWwC,SAAA,CAAU;QACxCnE,OAAA;QACAI,MAAA;QACAC,OAAA;QACAC,OAAA;QACAE,KAAA,EAAOkI,QAAA;QACPW,WAAA,EAAa;MACf,CAAC;MACDJ,iBAAA,CAAkB9F,OAAA,GAAUiG,MAAA,CAAOE,cAAA;MACnC,MAAMC,IAAA,GAAO5H,WAAA,CAAW6H,sBAAA,CAA6BJ,MAAA,CAAOE,cAAc;MAC1E,MAAMG,QAAA,GAAW9H,WAAA,CAAW+H,WAAA,CAAYN,MAAA,CAAOE,cAAc;MAC7DT,QAAA,CAASF,SAAA,GAAYY,IAAA,CAAKlD,GAAA,CAAIsC,SAAS,IAAIY,IAAI;MAC/CT,UAAA,CAAWW,QAAA,CAASvC,OAAO;IAC7B,SAASyC,GAAA,EAAK;MACZX,QAAA,CAASW,GAAA,YAAeC,KAAA,GAAQD,GAAA,GAAM,IAAIC,KAAA,CAAMrJ,MAAA,CAAOoJ,GAAG,CAAC,CAAC;IAC9D,UAAE;MACAZ,YAAA,CAAa,KAAK;IACpB;EACF,GAAG,CAAC/I,OAAA,EAASI,MAAA,EAAQC,OAAA,EAASC,OAAA,EAASoI,QAAA,EAAUC,SAAS,CAAC;EAE3D,MAAM;IAAEH,WAAA;IAAaf,SAAA,EAAW2C;EAAW,IAAInD,iBAAA,CAAkB;IAC/DC,OAAA;IACAC,SAAA,EAAWA,SAAA,IAAaQ,aAAA;IACxBP,UAAA,EAAYa;EACd,CAAC;EAED,OAAO;IACLW,KAAA;IACA1B,OAAA;IACAC,SAAA;IACAQ,aAAA;IACAxF,KAAA;IACAqG,WAAA;IACAP,QAAA;IACAkC,OAAA;IACAE,WAAA,EAAazB,KAAA,CAAMpC;EACrB;AACF","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { isWindowDefined } from "@multiplatform.one/platform";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
3
3
  import { createFrappeCollection, releaseFrappeCollectionSync } from "./collection.native.js";
4
4
  import { HttpClient } from "./core/http.native.js";
5
5
  import { DbModule } from "./db.native.js";
@@ -7,6 +7,7 @@ import { FixtureDbModule } from "./fixtureDb.native.js";
7
7
  import { RealtimeModule } from "./realtime.native.js";
8
8
  import { SyncModule } from "./sync/index.native.js";
9
9
  import { Status } from "./sync/types.native.js";
10
+ import { syncOptionsKey } from "./syncOptionsKey.native.js";
10
11
  import { isBrowser } from "./util.native.js";
11
12
  function _instanceof(left, right) {
12
13
  "@swc/helpers - instanceof";
@@ -19,7 +20,13 @@ function _instanceof(left, right) {
19
20
  }
20
21
  var syncModuleCache = /* @__PURE__ */new Map();
21
22
  var fixtureSyncModuleCache = /* @__PURE__ */new WeakMap();
23
+ var latestSyncModule;
24
+ function rememberLatestSyncModule(sync) {
25
+ if (typeof WeakRef === "function") latestSyncModule = new WeakRef(sync);
26
+ }
22
27
  function __getActiveSyncModule() {
28
+ var latest = latestSyncModule === null || latestSyncModule === void 0 ? void 0 : latestSyncModule.deref();
29
+ if (latest) return latest;
23
30
  var _iteratorNormalCompletion = true,
24
31
  _didIteratorError = false,
25
32
  _iteratorError = void 0;
@@ -51,22 +58,26 @@ function getFrappeSyncModule(config) {
51
58
  function getSyncModule(config) {
52
59
  var _config_socketPort, _config_socketBaseURL, _config_siteName;
53
60
  if (!isBrowser()) return void 0;
61
+ var optionsKey = syncOptionsKey(config.syncOptions);
54
62
  if (config.fixtures) {
55
- var sync = fixtureSyncModuleCache.get(config.fixtures);
63
+ var cache = fixtureSyncModuleCache.get(config.fixtures);
64
+ if (!cache) {
65
+ cache = /* @__PURE__ */new Map();
66
+ fixtureSyncModuleCache.set(config.fixtures, cache);
67
+ }
68
+ var sync = cache.get(optionsKey);
56
69
  if (!sync) {
57
70
  var db = new FixtureDbModule(config.fixtures);
58
71
  sync = new SyncModule(db, void 0, config.syncOptions);
59
- fixtureSyncModuleCache.set(config.fixtures, sync);
72
+ cache.set(optionsKey, sync);
73
+ rememberLatestSyncModule(sync);
60
74
  }
61
75
  return sync;
62
76
  }
63
77
  if (!config.baseURL) return void 0;
64
- var key = [config.baseURL, config.realtime === false ? "http" : "realtime", (_config_socketPort = config.socketPort) !== null && _config_socketPort !== void 0 ? _config_socketPort : "", (_config_socketBaseURL = config.socketBaseURL) !== null && _config_socketBaseURL !== void 0 ? _config_socketBaseURL : "", (_config_siteName = config.siteName) !== null && _config_siteName !== void 0 ? _config_siteName : ""].join("|");
78
+ var key = [config.baseURL, config.realtime === false ? "http" : "realtime", (_config_socketPort = config.socketPort) !== null && _config_socketPort !== void 0 ? _config_socketPort : "", (_config_socketBaseURL = config.socketBaseURL) !== null && _config_socketBaseURL !== void 0 ? _config_socketBaseURL : "", (_config_siteName = config.siteName) !== null && _config_siteName !== void 0 ? _config_siteName : "", optionsKey].join("|");
65
79
  var sync1 = syncModuleCache.get(key);
66
80
  if (!sync1) {
67
- var _ref, _ref1;
68
- var _config_syncOptions, _config_syncOptions1;
69
- console.debug(`[frappe-sync] SyncModule created for ${key} (persistKey=${(_ref = (_config_syncOptions = config.syncOptions) === null || _config_syncOptions === void 0 ? void 0 : _config_syncOptions.persistKey) !== null && _ref !== void 0 ? _ref : "none"}, cdcInterval=${(_ref1 = (_config_syncOptions1 = config.syncOptions) === null || _config_syncOptions1 === void 0 ? void 0 : _config_syncOptions1.cdcInterval) !== null && _ref1 !== void 0 ? _ref1 : "off"})`);
70
81
  var authConfig = config.auth ? {
71
82
  useToken: config.auth.useToken,
72
83
  token: config.auth.token,
@@ -91,6 +102,7 @@ function getSyncModule(config) {
91
102
  };
92
103
  sync1 = new SyncModule(db1, config.realtime === false ? void 0 : new RealtimeModule(realtimeConfig), config.syncOptions);
93
104
  syncModuleCache.set(key, sync1);
105
+ rememberLatestSyncModule(sync1);
94
106
  }
95
107
  return sync1;
96
108
  }
@@ -239,7 +251,17 @@ function cleanupEntryCollectionWhenIdle(entry) {
239
251
  };
240
252
  entry.gcTimer = setTimeout(tick, SHARED_COLLECTION_GC_MS);
241
253
  }
254
+ var subscribeHydration = function subscribeHydration2() {
255
+ return function () {};
256
+ };
257
+ var clientCollectionAvailable = function clientCollectionAvailable2() {
258
+ return true;
259
+ };
260
+ var serverCollectionAvailable = function serverCollectionAvailable2() {
261
+ return false;
262
+ };
242
263
  function useFrappeCollection(config, doctype, options) {
264
+ var collectionAvailable = useSyncExternalStore(subscribeHydration, clientCollectionAvailable, serverCollectionAvailable);
243
265
  var errorHandlerRef = useRef(options === null || options === void 0 ? void 0 : options.onSyncError);
244
266
  errorHandlerRef.current = options === null || options === void 0 ? void 0 : options.onSyncError;
245
267
  var stableErrorHandler = useCallback(function (error) {
@@ -250,7 +272,7 @@ function useFrappeCollection(config, doctype, options) {
250
272
  var cache;
251
273
  var key = "";
252
274
  var entry;
253
- if (config && doctype) {
275
+ if (collectionAvailable && config && doctype) {
254
276
  var syncModule = getSyncModule(config);
255
277
  if (syncModule) {
256
278
  key = collectionOptionsKey(doctype, options);
@@ -289,19 +311,47 @@ function useFrappeCollection(config, doctype, options) {
289
311
  [entry, stableErrorHandler]);
290
312
  return entry ? entry.collection : void 0;
291
313
  }
314
+ var idleCatchUpState = Object.freeze({
315
+ refreshing: false,
316
+ stale: false,
317
+ error: null
318
+ });
319
+ function useFrappeCatchUp(config) {
320
+ var sync = getFrappeSyncModule(config);
321
+ var subscribe = useCallback(function (listener) {
322
+ var _ref;
323
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.subscribeStore(listener)) !== null && _ref !== void 0 ? _ref : function () {};
324
+ }, [sync]);
325
+ var snapshot = useCallback(function () {
326
+ var _ref;
327
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.getCatchUpState()) !== null && _ref !== void 0 ? _ref : idleCatchUpState;
328
+ }, [sync]);
329
+ var state = useSyncExternalStore(subscribe, snapshot, function () {
330
+ return idleCatchUpState;
331
+ });
332
+ var retry = useCallback(function () {
333
+ var _ref;
334
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.catchUp()) !== null && _ref !== void 0 ? _ref : Promise.resolve(idleCatchUpState);
335
+ }, [sync]);
336
+ return useMemo(function () {
337
+ return {
338
+ ...state,
339
+ retry
340
+ };
341
+ }, [state, retry]);
342
+ }
292
343
  var DISCONNECTED_STATE = Object.freeze({
293
344
  connected: false,
294
345
  everConnected: false
295
346
  });
296
347
  function useFrappeConnection(config) {
297
348
  var [state, setState] = useState(DISCONNECTED_STATE);
349
+ var syncModule = config && !config.fixtures && config.realtime !== false ? getSyncModule(config) : void 0;
298
350
  useEffect(function () {
299
- if (!config || config.fixtures || config.realtime === false || !isBrowser()) {
351
+ if (!syncModule) {
300
352
  setState(DISCONNECTED_STATE);
301
353
  return;
302
354
  }
303
- var syncModule = getSyncModule(config);
304
- if (!syncModule) return;
305
355
  var read = function read2() {
306
356
  var next = syncModule.getConnectionState();
307
357
  setState(function (prev) {
@@ -312,16 +362,15 @@ function useFrappeConnection(config) {
312
362
  return syncModule.subscribeStore(read);
313
363
  },
314
364
  // eslint-disable-next-line react-hooks/exhaustive-deps
315
- [config === null || config === void 0 ? void 0 : config.baseURL, config === null || config === void 0 ? void 0 : config.realtime, !!(config === null || config === void 0 ? void 0 : config.fixtures)]);
365
+ [syncModule]);
316
366
  return (config === null || config === void 0 ? void 0 : config.realtime) === false ? DISCONNECTED_STATE : state;
317
367
  }
318
368
  function useFrappeDoctypeEvents(config, doctype, onEvent) {
319
369
  var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
320
370
  var handlerRef = useRef(onEvent);
321
371
  handlerRef.current = onEvent;
372
+ var syncModule = enabled && config && !config.fixtures && config.realtime !== false && doctype ? getSyncModule(config) : void 0;
322
373
  useEffect(function () {
323
- if (!enabled || !config || config.fixtures || config.realtime === false || !doctype || !isBrowser()) return;
324
- var syncModule = getSyncModule(config);
325
374
  if (!syncModule) return;
326
375
  syncModule.watchDoctype(doctype);
327
376
  var unsubscribe = syncModule.subscribeRealtimeEvents(function (event) {
@@ -338,21 +387,20 @@ function useFrappeDoctypeEvents(config, doctype, onEvent) {
338
387
  };
339
388
  },
340
389
  // eslint-disable-next-line react-hooks/exhaustive-deps
341
- [enabled, config === null || config === void 0 ? void 0 : config.baseURL, config === null || config === void 0 ? void 0 : config.realtime, !!(config === null || config === void 0 ? void 0 : config.fixtures), doctype]);
390
+ [syncModule, doctype]);
342
391
  }
343
392
  var EMPTY_LEDGER = [];
344
393
  function useFrappePendingMutations(config, doctype) {
345
394
  var [entries, setEntries] = useState(EMPTY_LEDGER);
346
395
  var syncModuleRef = useRef(void 0);
396
+ var syncModule = getFrappeSyncModule(config);
347
397
  useEffect(function () {
348
- if (!config || !isBrowser()) {
398
+ if (!syncModule) {
349
399
  setEntries(EMPTY_LEDGER);
350
400
  return;
351
401
  }
352
- var syncModule = getSyncModule(config);
353
- if (!syncModule) return;
354
402
  syncModuleRef.current = syncModule;
355
- var lastSignature = "";
403
+ var lastSignature;
356
404
  var read = function read2() {
357
405
  var next = syncModule.getMutationEntries(doctype);
358
406
  var signature = next.map(function (e) {
@@ -363,10 +411,14 @@ function useFrappePendingMutations(config, doctype) {
363
411
  setEntries(next.length === 0 ? EMPTY_LEDGER : next);
364
412
  };
365
413
  read();
366
- return syncModule.subscribeStore(read);
414
+ var unsubscribe = syncModule.subscribeStore(read);
415
+ return function () {
416
+ unsubscribe();
417
+ syncModuleRef.current = void 0;
418
+ };
367
419
  },
368
420
  // eslint-disable-next-line react-hooks/exhaustive-deps
369
- [config === null || config === void 0 ? void 0 : config.baseURL, config === null || config === void 0 ? void 0 : config.realtime, !!(config === null || config === void 0 ? void 0 : config.fixtures), doctype]);
421
+ [syncModule, doctype]);
370
422
  var retry = useCallback(async function () {
371
423
  var _syncModuleRef_current;
372
424
  await ((_syncModuleRef_current = syncModuleRef.current) === null || _syncModuleRef_current === void 0 ? void 0 : _syncModuleRef_current.replayPending());
@@ -489,9 +541,8 @@ function useFrappeInfiniteList(options) {
489
541
  var subscriptionIdRef = useRef(void 0);
490
542
  var syncModuleRef = useRef(void 0);
491
543
  var filtersKey = JSON.stringify(filters);
544
+ var syncModule = getFrappeSyncModule(config);
492
545
  useEffect(function () {
493
- if (!config || !isBrowser()) return;
494
- var syncModule = getSyncModule(config);
495
546
  if (!syncModule) return;
496
547
  syncModuleRef.current = syncModule;
497
548
  var cancelled = false;
@@ -541,21 +592,22 @@ function useFrappeInfiniteList(options) {
541
592
  syncModule.unsubscribe(subscriptionIdRef.current);
542
593
  subscriptionIdRef.current = void 0;
543
594
  }
595
+ syncModuleRef.current = void 0;
544
596
  };
545
597
  },
546
598
  // eslint-disable-next-line react-hooks/exhaustive-deps
547
- [config === null || config === void 0 ? void 0 : config.baseURL, config === null || config === void 0 ? void 0 : config.realtime, config === null || config === void 0 ? void 0 : (_config_auth = config.auth) === null || _config_auth === void 0 ? void 0 : _config_auth.token, doctype, filtersKey, pageSize]);
599
+ [syncModule, config === null || config === void 0 ? void 0 : (_config_auth = config.auth) === null || _config_auth === void 0 ? void 0 : _config_auth.token, doctype, filtersKey, pageSize]);
548
600
  var loadMore = useCallback(async function () {
549
- var syncModule = syncModuleRef.current;
601
+ var syncModule2 = syncModuleRef.current;
550
602
  var subId = subscriptionIdRef.current;
551
- if (!syncModule || !subId || !hasMore || isLoadingMore) return;
603
+ if (!syncModule2 || !subId || !hasMore || isLoadingMore) return;
552
604
  setIsLoadingMore(true);
553
605
  setError(null);
554
606
  try {
555
- var currentDocs = syncModule.getDocsForSubscription(subId);
607
+ var currentDocs = syncModule2.getDocsForSubscription(subId);
556
608
  var lastDoc = currentDocs[currentDocs.length - 1];
557
609
  if (!lastDoc) return;
558
- await syncModule.getNextBatch(subId, lastDoc.name, pageSize);
610
+ await syncModule2.getNextBatch(subId, lastDoc.name, pageSize);
559
611
  } catch (err) {
560
612
  setError(_instanceof(err, Error) ? err : new Error(String(err)));
561
613
  } finally {
@@ -563,16 +615,16 @@ function useFrappeInfiniteList(options) {
563
615
  }
564
616
  }, [hasMore, isLoadingMore, pageSize]);
565
617
  var refresh = useCallback(async function () {
566
- var syncModule = syncModuleRef.current;
567
- if (!syncModule || !subscriptionIdRef.current) return;
568
- syncModule.unsubscribe(subscriptionIdRef.current);
618
+ var syncModule2 = syncModuleRef.current;
619
+ if (!syncModule2 || !subscriptionIdRef.current) return;
620
+ syncModule2.unsubscribe(subscriptionIdRef.current);
569
621
  subscriptionIdRef.current = void 0;
570
622
  setItems([]);
571
623
  setHasMore(true);
572
624
  setIsLoading(true);
573
625
  setError(null);
574
626
  try {
575
- var result = await syncModule.subscribe({
627
+ var result = await syncModule2.subscribe({
576
628
  doctype,
577
629
  fields,
578
630
  filters,
@@ -581,8 +633,8 @@ function useFrappeInfiniteList(options) {
581
633
  progressive: true
582
634
  });
583
635
  subscriptionIdRef.current = result.subscriptionId;
584
- var docs = syncModule.getDocsForSubscription(result.subscriptionId);
585
- var pageInfo = syncModule.getPageInfo(result.subscriptionId);
636
+ var docs = syncModule2.getDocsForSubscription(result.subscriptionId);
637
+ var pageInfo = syncModule2.getPageInfo(result.subscriptionId);
586
638
  setItems(transform ? docs.map(transform) : docs);
587
639
  setHasMore(pageInfo.hasMore);
588
640
  } catch (err) {
@@ -611,5 +663,5 @@ function useFrappeInfiniteList(options) {
611
663
  totalLoaded: items.length
612
664
  };
613
665
  }
614
- export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
666
+ export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCatchUp, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
615
667
  //# sourceMappingURL=frappeReact.native.js.map