@multiplatform.one/frappe 7.8.0 → 7.11.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 (87) hide show
  1. package/README.md +89 -1
  2. package/dist/cjs/frappeReact.cjs +54 -30
  3. package/dist/cjs/frappeReact.native.js +67 -32
  4. package/dist/cjs/frappeReact.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +1 -0
  6. package/dist/cjs/index.native.js +1 -0
  7. package/dist/cjs/index.native.js.map +1 -1
  8. package/dist/cjs/sync/index.cjs +97 -13
  9. package/dist/cjs/sync/index.native.js +127 -13
  10. package/dist/cjs/sync/index.native.js.map +1 -1
  11. package/dist/cjs/sync/subscriptionManager.cjs +94 -50
  12. package/dist/cjs/sync/subscriptionManager.native.js +133 -73
  13. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  14. package/dist/cjs/sync/types.native.js.map +1 -1
  15. package/dist/cjs/syncOptionsKey.cjs +59 -0
  16. package/dist/cjs/syncOptionsKey.native.js +82 -0
  17. package/dist/cjs/syncOptionsKey.native.js.map +1 -0
  18. package/dist/esm/frappeReact.mjs +55 -32
  19. package/dist/esm/frappeReact.mjs.map +1 -1
  20. package/dist/esm/frappeReact.native.js +68 -34
  21. package/dist/esm/frappeReact.native.js.map +1 -1
  22. package/dist/esm/index.mjs +2 -2
  23. package/dist/esm/index.mjs.map +1 -1
  24. package/dist/esm/index.native.js +2 -2
  25. package/dist/esm/index.native.js.map +1 -1
  26. package/dist/esm/sync/index.mjs +97 -13
  27. package/dist/esm/sync/index.mjs.map +1 -1
  28. package/dist/esm/sync/index.native.js +127 -13
  29. package/dist/esm/sync/index.native.js.map +1 -1
  30. package/dist/esm/sync/subscriptionManager.mjs +94 -50
  31. package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
  32. package/dist/esm/sync/subscriptionManager.native.js +133 -73
  33. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  34. package/dist/esm/sync/types.mjs.map +1 -1
  35. package/dist/esm/sync/types.native.js.map +1 -1
  36. package/dist/esm/syncOptionsKey.mjs +34 -0
  37. package/dist/esm/syncOptionsKey.mjs.map +1 -0
  38. package/dist/esm/syncOptionsKey.native.js +54 -0
  39. package/dist/esm/syncOptionsKey.native.js.map +1 -0
  40. package/dist/jsx/frappeReact.mjs +55 -32
  41. package/dist/jsx/frappeReact.mjs.map +1 -1
  42. package/dist/jsx/frappeReact.native.js +67 -32
  43. package/dist/jsx/frappeReact.native.js.map +1 -1
  44. package/dist/jsx/index.js +2 -2
  45. package/dist/jsx/index.js.map +1 -1
  46. package/dist/jsx/index.mjs +2 -2
  47. package/dist/jsx/index.mjs.map +1 -1
  48. package/dist/jsx/index.native.js +1 -0
  49. package/dist/jsx/index.native.js.map +1 -1
  50. package/dist/jsx/sync/index.mjs +97 -13
  51. package/dist/jsx/sync/index.mjs.map +1 -1
  52. package/dist/jsx/sync/index.native.js +127 -13
  53. package/dist/jsx/sync/index.native.js.map +1 -1
  54. package/dist/jsx/sync/subscriptionManager.mjs +94 -50
  55. package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
  56. package/dist/jsx/sync/subscriptionManager.native.js +133 -73
  57. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  58. package/dist/jsx/sync/types.mjs.map +1 -1
  59. package/dist/jsx/sync/types.native.js.map +1 -1
  60. package/dist/jsx/syncOptionsKey.mjs +34 -0
  61. package/dist/jsx/syncOptionsKey.mjs.map +1 -0
  62. package/dist/jsx/syncOptionsKey.native.js +82 -0
  63. package/dist/jsx/syncOptionsKey.native.js.map +1 -0
  64. package/package.json +9 -9
  65. package/src/frappeReact.catchUp.spec.tsx +105 -0
  66. package/src/frappeReact.ts +62 -38
  67. package/src/index.ts +8 -1
  68. package/src/sync/catchUp.spec.ts +142 -0
  69. package/src/sync/index.ts +108 -8
  70. package/src/sync/refreshSubscriptions.lifecycle.spec.ts +268 -0
  71. package/src/sync/refreshSubscriptions.spec.ts +295 -0
  72. package/src/sync/subscriptionManager.ts +107 -44
  73. package/src/sync/types.ts +9 -1
  74. package/src/syncOptionsKey.spec.ts +46 -0
  75. package/src/syncOptionsKey.ts +45 -0
  76. package/types/frappeReact.d.ts +6 -1
  77. package/types/frappeReact.d.ts.map +1 -1
  78. package/types/index.d.ts +4 -4
  79. package/types/index.d.ts.map +1 -1
  80. package/types/sync/index.d.ts +13 -1
  81. package/types/sync/index.d.ts.map +1 -1
  82. package/types/sync/subscriptionManager.d.ts +13 -10
  83. package/types/sync/subscriptionManager.d.ts.map +1 -1
  84. package/types/sync/types.d.ts +8 -1
  85. package/types/sync/types.d.ts.map +1 -1
  86. package/types/syncOptionsKey.d.ts +3 -0
  87. package/types/syncOptionsKey.d.ts.map +1 -0
package/README.md CHANGED
@@ -205,6 +205,94 @@ SyncModule (orchestrator)
205
205
  └── Active tab priority handoff
206
206
  ```
207
207
 
208
+ ## Lifecycle catch-up for resource-only servers
209
+
210
+ CDC remains the default. Servers that provide resource reads without the CDC
211
+ extension can explicitly select snapshot catch-up on the shared provider:
212
+
213
+ ```tsx
214
+ <FrappeProvider
215
+ baseURL={baseURL}
216
+ realtime={false}
217
+ syncOptions={{ catchUpStrategy: "snapshot" }}
218
+ >
219
+ <App />
220
+ </FrappeProvider>
221
+ ```
222
+
223
+ `realtime={false}` controls the socket only. Focus, online, socket reconnect and
224
+ cross-tab catch-up use the selected strategy. The optional `cdcInterval` is the
225
+ interval in milliseconds for either strategy; zero or omission disables the
226
+ timer. Snapshot catch-up uses `refreshSubscriptions()` and preserves mounted
227
+ collection identity. It does not provide CDC or cursor-extension endpoints.
228
+ Snapshot mode refuses progressive subscriptions before their first fetch.
229
+
230
+ ```tsx
231
+ import { useFrappeCatchUp } from "@multiplatform.one/frappe";
232
+ import { useFrappeConfig } from "@multiplatform.one/frappe-ui";
233
+
234
+ const { refreshing, stale, error, retry } = useFrappeCatchUp(useFrappeConfig());
235
+ // Keep current rows mounted; show stale/error beside them when present.
236
+ // A Retry button can call: () => void retry()
237
+ ```
238
+
239
+ The hook exposes connection-level catch-up state. `stale` means at least one
240
+ selected active subscription could not reconcile; it does not identify every
241
+ individual row as wrong. `refreshing` is independent of initial collection
242
+ loading. Network failures retain rows and the error. Retrying keeps the old
243
+ qualification until successful catch-up clears it. Snapshot errors aggregate
244
+ the failed subscriptions' original errors; CDC errors retain the original error.
245
+ Undefined config and SSR expose idle state and an inert retry.
246
+
247
+ The underlying `sync.catchUp()` and hook `retry()` resolve to
248
+ `{ refreshing, stale, error }`, including on network failure. Direct
249
+ `sync.backfill(args)` still means CDC and still rejects, even on a snapshot
250
+ module. Direct `refreshSubscriptions()` retains its per-subscription results.
251
+ Catch-up state describes the latest lifecycle/retry attempt; direct refreshes
252
+ do not clear a previous catch-up error. No failure causes a collection remount
253
+ or an automatic retry on render.
254
+
255
+ Overlapping catch-up triggers join one active operation, with at most one
256
+ trailing read per burst. Triggers during that trailing read join it; a later
257
+ event or explicit Retry can start another operation. Reset/dispose invalidates
258
+ pending catch-up state publication.
259
+
260
+ Shared live and fixture modules distinguish effective sync options, including
261
+ the strategy. Equivalent plain option values share a module. Callbacks and
262
+ storage implementations are compared by reference; keep those references
263
+ stable if they describe the same connection. Changing options moves collection
264
+ and status hooks to the corresponding module. The cache key is never logged.
265
+
266
+ ## Refresh mounted snapshots
267
+
268
+ ```typescript
269
+ const results = await sync.refreshSubscriptions({ doctypes: ["Task"] });
270
+ const failures = results.filter((result) => !result.ok);
271
+ ```
272
+
273
+ `refreshSubscriptions()` refreshes every active subscription. `doctypes: []` or
274
+ unknown doctypes select none; dormant persisted subscriptions are excluded.
275
+ Shared subscriptions return one result per id. No `persistKey` is required.
276
+ `SubscriptionRefreshOptions` and `SubscriptionRefreshResult` are exported from
277
+ the package root.
278
+
279
+ Each refresh reads the original fields, filters, order and query window. An
280
+ omitted or null limit uses the default page length; `limit: 0` stays unlimited.
281
+ Accepted responses replace membership, including deletions and empty results,
282
+ while mounted collections keep their identity. Cached documents outside that
283
+ membership remain available to other subscriptions.
284
+
285
+ Failures return `{ subscriptionId, ok: false, error }`, retain the last committed
286
+ snapshot and mark the active subscription stale. Progressive subscriptions return
287
+ `Snapshot refresh does not support progressive subscriptions` without fetching or
288
+ changing their pagination state. Other selected subscriptions still refresh.
289
+
290
+ Requests overlapping an in-flight read coalesce into a trailing read. All callers
291
+ receive its final outcome; superseded responses never commit. Detaching the last
292
+ consumer or resetting the cache invalidates pending refreshes. Re-adoption serves
293
+ cached rows immediately and coordinates its background refresh with explicit calls.
294
+ Store readers are notified when selected operations settle.
295
+
208
296
  ## Conflict Resolution
209
297
 
210
298
  ```typescript
@@ -259,7 +347,7 @@ const sync = new SyncModule(db, realtime, {
259
347
  ## Testing
260
348
 
261
349
  ```bash
262
- npm test
350
+ pnpm test
263
351
  ```
264
352
 
265
353
  ## License
@@ -24,6 +24,7 @@ var frappeReact_exports = {};
24
24
  __export(frappeReact_exports, {
25
25
  __getActiveSyncModule: () => __getActiveSyncModule,
26
26
  getFrappeSyncModule: () => getFrappeSyncModule,
27
+ useFrappeCatchUp: () => useFrappeCatchUp,
27
28
  useFrappeCollection: () => useFrappeCollection,
28
29
  useFrappeConnection: () => useFrappeConnection,
29
30
  useFrappeDoctypeEvents: () => useFrappeDoctypeEvents,
@@ -41,6 +42,7 @@ var import_fixtureDb = require("./fixtureDb.cjs");
41
42
  var import_realtime = require("./realtime.cjs");
42
43
  var import_sync = require("./sync/index.cjs");
43
44
  var import_types = require("./sync/types.cjs");
45
+ var import_syncOptionsKey = require("./syncOptionsKey.cjs");
44
46
  var import_util = require("./util.cjs");
45
47
  const syncModuleCache = /* @__PURE__ */new Map();
46
48
  const fixtureSyncModuleCache = /* @__PURE__ */new WeakMap();
@@ -54,20 +56,25 @@ function getFrappeSyncModule(config) {
54
56
  }
55
57
  function getSyncModule(config) {
56
58
  if (!(0, import_util.isBrowser)()) return void 0;
59
+ const optionsKey = (0, import_syncOptionsKey.syncOptionsKey)(config.syncOptions);
57
60
  if (config.fixtures) {
58
- let sync2 = fixtureSyncModuleCache.get(config.fixtures);
61
+ let cache = fixtureSyncModuleCache.get(config.fixtures);
62
+ if (!cache) {
63
+ cache = /* @__PURE__ */new Map();
64
+ fixtureSyncModuleCache.set(config.fixtures, cache);
65
+ }
66
+ let sync2 = cache.get(optionsKey);
59
67
  if (!sync2) {
60
68
  const db = new import_fixtureDb.FixtureDbModule(config.fixtures);
61
69
  sync2 = new import_sync.SyncModule(db, void 0, config.syncOptions);
62
- fixtureSyncModuleCache.set(config.fixtures, sync2);
70
+ cache.set(optionsKey, sync2);
63
71
  }
64
72
  return sync2;
65
73
  }
66
74
  if (!config.baseURL) return void 0;
67
- const key = [config.baseURL, config.realtime === false ? "http" : "realtime", config.socketPort ?? "", config.socketBaseURL ?? "", config.siteName ?? ""].join("|");
75
+ const key = [config.baseURL, config.realtime === false ? "http" : "realtime", config.socketPort ?? "", config.socketBaseURL ?? "", config.siteName ?? "", optionsKey].join("|");
68
76
  let sync = syncModuleCache.get(key);
69
77
  if (!sync) {
70
- console.debug(`[frappe-sync] SyncModule created for ${key} (persistKey=${config.syncOptions?.persistKey ?? "none"}, cdcInterval=${config.syncOptions?.cdcInterval ?? "off"})`);
71
78
  const authConfig = config.auth ? {
72
79
  useToken: config.auth.useToken,
73
80
  token: config.auth.token,
@@ -256,34 +263,48 @@ function useFrappeCollection(config, doctype, options) {
256
263
  }, [entry, stableErrorHandler]);
257
264
  return entry ? entry.collection : void 0;
258
265
  }
266
+ const idleCatchUpState = Object.freeze({
267
+ refreshing: false,
268
+ stale: false,
269
+ error: null
270
+ });
271
+ function useFrappeCatchUp(config) {
272
+ const sync = getFrappeSyncModule(config);
273
+ const subscribe = (0, import_react.useCallback)(listener => sync?.subscribeStore(listener) ?? (() => {}), [sync]);
274
+ const snapshot = (0, import_react.useCallback)(() => sync?.getCatchUpState() ?? idleCatchUpState, [sync]);
275
+ const state = (0, import_react.useSyncExternalStore)(subscribe, snapshot, () => idleCatchUpState);
276
+ const retry = (0, import_react.useCallback)(() => sync?.catchUp() ?? Promise.resolve(idleCatchUpState), [sync]);
277
+ return (0, import_react.useMemo)(() => ({
278
+ ...state,
279
+ retry
280
+ }), [state, retry]);
281
+ }
259
282
  const DISCONNECTED_STATE = Object.freeze({
260
283
  connected: false,
261
284
  everConnected: false
262
285
  });
263
286
  function useFrappeConnection(config) {
264
287
  const [state, setState] = (0, import_react.useState)(DISCONNECTED_STATE);
288
+ const syncModule = config && !config.fixtures && config.realtime !== false ? getSyncModule(config) : void 0;
265
289
  (0, import_react.useEffect)(() => {
266
- if (!config || config.fixtures || config.realtime === false || !(0, import_util.isBrowser)()) {
290
+ if (!syncModule) {
267
291
  setState(DISCONNECTED_STATE);
268
292
  return;
269
293
  }
270
- const syncModule = getSyncModule(config);
271
- if (!syncModule) return;
272
294
  const read = () => {
273
295
  const next = syncModule.getConnectionState();
274
296
  setState(prev => prev.connected === next.connected && prev.everConnected === next.everConnected ? prev : next);
275
297
  };
276
298
  read();
277
299
  return syncModule.subscribeStore(read);
278
- }, [config?.baseURL, config?.realtime, !!config?.fixtures]);
300
+ }, [syncModule]);
279
301
  return config?.realtime === false ? DISCONNECTED_STATE : state;
280
302
  }
281
303
  function useFrappeDoctypeEvents(config, doctype, onEvent, enabled = true) {
282
304
  const handlerRef = (0, import_react.useRef)(onEvent);
283
305
  handlerRef.current = onEvent;
306
+ const syncModule = enabled && config && !config.fixtures && config.realtime !== false && doctype ? getSyncModule(config) : void 0;
284
307
  (0, import_react.useEffect)(() => {
285
- if (!enabled || !config || config.fixtures || config.realtime === false || !doctype || !(0, import_util.isBrowser)()) return;
286
- const syncModule = getSyncModule(config);
287
308
  if (!syncModule) return;
288
309
  syncModule.watchDoctype(doctype);
289
310
  const unsubscribe = syncModule.subscribeRealtimeEvents(event => {
@@ -298,21 +319,20 @@ function useFrappeDoctypeEvents(config, doctype, onEvent, enabled = true) {
298
319
  unsubscribe();
299
320
  syncModule.unwatchDoctype(doctype);
300
321
  };
301
- }, [enabled, config?.baseURL, config?.realtime, !!config?.fixtures, doctype]);
322
+ }, [syncModule, doctype]);
302
323
  }
303
324
  const EMPTY_LEDGER = [];
304
325
  function useFrappePendingMutations(config, doctype) {
305
326
  const [entries, setEntries] = (0, import_react.useState)(EMPTY_LEDGER);
306
327
  const syncModuleRef = (0, import_react.useRef)(void 0);
328
+ const syncModule = getFrappeSyncModule(config);
307
329
  (0, import_react.useEffect)(() => {
308
- if (!config || !(0, import_util.isBrowser)()) {
330
+ if (!syncModule) {
309
331
  setEntries(EMPTY_LEDGER);
310
332
  return;
311
333
  }
312
- const syncModule = getSyncModule(config);
313
- if (!syncModule) return;
314
334
  syncModuleRef.current = syncModule;
315
- let lastSignature = "";
335
+ let lastSignature;
316
336
  const read = () => {
317
337
  const next = syncModule.getMutationEntries(doctype);
318
338
  const signature = next.map(e => `${e.id}:${e.status}:${e.retryCount}`).join("|");
@@ -321,8 +341,12 @@ function useFrappePendingMutations(config, doctype) {
321
341
  setEntries(next.length === 0 ? EMPTY_LEDGER : next);
322
342
  };
323
343
  read();
324
- return syncModule.subscribeStore(read);
325
- }, [config?.baseURL, config?.realtime, !!config?.fixtures, doctype]);
344
+ const unsubscribe = syncModule.subscribeStore(read);
345
+ return () => {
346
+ unsubscribe();
347
+ syncModuleRef.current = void 0;
348
+ };
349
+ }, [syncModule, doctype]);
326
350
  const retry = (0, import_react.useCallback)(async () => {
327
351
  await syncModuleRef.current?.replayPending();
328
352
  }, []);
@@ -437,9 +461,8 @@ function useFrappeInfiniteList(options) {
437
461
  const subscriptionIdRef = (0, import_react.useRef)(void 0);
438
462
  const syncModuleRef = (0, import_react.useRef)(void 0);
439
463
  const filtersKey = JSON.stringify(filters);
464
+ const syncModule = getFrappeSyncModule(config);
440
465
  (0, import_react.useEffect)(() => {
441
- if (!config || !(0, import_util.isBrowser)()) return;
442
- const syncModule = getSyncModule(config);
443
466
  if (!syncModule) return;
444
467
  syncModuleRef.current = syncModule;
445
468
  let cancelled = false;
@@ -489,19 +512,20 @@ function useFrappeInfiniteList(options) {
489
512
  syncModule.unsubscribe(subscriptionIdRef.current);
490
513
  subscriptionIdRef.current = void 0;
491
514
  }
515
+ syncModuleRef.current = void 0;
492
516
  };
493
- }, [config?.baseURL, config?.realtime, config?.auth?.token, doctype, filtersKey, pageSize]);
517
+ }, [syncModule, config?.auth?.token, doctype, filtersKey, pageSize]);
494
518
  const loadMore = (0, import_react.useCallback)(async () => {
495
- const syncModule = syncModuleRef.current;
519
+ const syncModule2 = syncModuleRef.current;
496
520
  const subId = subscriptionIdRef.current;
497
- if (!syncModule || !subId || !hasMore || isLoadingMore) return;
521
+ if (!syncModule2 || !subId || !hasMore || isLoadingMore) return;
498
522
  setIsLoadingMore(true);
499
523
  setError(null);
500
524
  try {
501
- const currentDocs = syncModule.getDocsForSubscription(subId);
525
+ const currentDocs = syncModule2.getDocsForSubscription(subId);
502
526
  const lastDoc = currentDocs[currentDocs.length - 1];
503
527
  if (!lastDoc) return;
504
- await syncModule.getNextBatch(subId, lastDoc.name, pageSize);
528
+ await syncModule2.getNextBatch(subId, lastDoc.name, pageSize);
505
529
  } catch (err) {
506
530
  setError(err instanceof Error ? err : new Error(String(err)));
507
531
  } finally {
@@ -509,16 +533,16 @@ function useFrappeInfiniteList(options) {
509
533
  }
510
534
  }, [hasMore, isLoadingMore, pageSize]);
511
535
  const refresh = (0, import_react.useCallback)(async () => {
512
- const syncModule = syncModuleRef.current;
513
- if (!syncModule || !subscriptionIdRef.current) return;
514
- syncModule.unsubscribe(subscriptionIdRef.current);
536
+ const syncModule2 = syncModuleRef.current;
537
+ if (!syncModule2 || !subscriptionIdRef.current) return;
538
+ syncModule2.unsubscribe(subscriptionIdRef.current);
515
539
  subscriptionIdRef.current = void 0;
516
540
  setItems([]);
517
541
  setHasMore(true);
518
542
  setIsLoading(true);
519
543
  setError(null);
520
544
  try {
521
- const result = await syncModule.subscribe({
545
+ const result = await syncModule2.subscribe({
522
546
  doctype,
523
547
  fields,
524
548
  filters,
@@ -527,8 +551,8 @@ function useFrappeInfiniteList(options) {
527
551
  progressive: true
528
552
  });
529
553
  subscriptionIdRef.current = result.subscriptionId;
530
- const docs = syncModule.getDocsForSubscription(result.subscriptionId);
531
- const pageInfo = syncModule.getPageInfo(result.subscriptionId);
554
+ const docs = syncModule2.getDocsForSubscription(result.subscriptionId);
555
+ const pageInfo = syncModule2.getPageInfo(result.subscriptionId);
532
556
  setItems(transform ? docs.map(transform) : docs);
533
557
  setHasMore(pageInfo.hasMore);
534
558
  } catch (err) {
@@ -26,6 +26,7 @@ var frappeReact_exports = {};
26
26
  __export(frappeReact_exports, {
27
27
  __getActiveSyncModule: () => __getActiveSyncModule,
28
28
  getFrappeSyncModule: () => getFrappeSyncModule,
29
+ useFrappeCatchUp: () => useFrappeCatchUp,
29
30
  useFrappeCollection: () => useFrappeCollection,
30
31
  useFrappeConnection: () => useFrappeConnection,
31
32
  useFrappeDoctypeEvents: () => useFrappeDoctypeEvents,
@@ -43,6 +44,7 @@ var import_fixtureDb = require("./fixtureDb.native.js");
43
44
  var import_realtime = require("./realtime.native.js");
44
45
  var import_sync = require("./sync/index.native.js");
45
46
  var import_types = require("./sync/types.native.js");
47
+ var import_syncOptionsKey = require("./syncOptionsKey.native.js");
46
48
  var import_util = require("./util.native.js");
47
49
  function _instanceof(left, right) {
48
50
  "@swc/helpers - instanceof";
@@ -87,22 +89,25 @@ function getFrappeSyncModule(config) {
87
89
  function getSyncModule(config) {
88
90
  var _config_socketPort, _config_socketBaseURL, _config_siteName;
89
91
  if (!(0, import_util.isBrowser)()) return void 0;
92
+ var optionsKey = (0, import_syncOptionsKey.syncOptionsKey)(config.syncOptions);
90
93
  if (config.fixtures) {
91
- var sync = fixtureSyncModuleCache.get(config.fixtures);
94
+ var cache = fixtureSyncModuleCache.get(config.fixtures);
95
+ if (!cache) {
96
+ cache = /* @__PURE__ */new Map();
97
+ fixtureSyncModuleCache.set(config.fixtures, cache);
98
+ }
99
+ var sync = cache.get(optionsKey);
92
100
  if (!sync) {
93
101
  var db = new import_fixtureDb.FixtureDbModule(config.fixtures);
94
102
  sync = new import_sync.SyncModule(db, void 0, config.syncOptions);
95
- fixtureSyncModuleCache.set(config.fixtures, sync);
103
+ cache.set(optionsKey, sync);
96
104
  }
97
105
  return sync;
98
106
  }
99
107
  if (!config.baseURL) return void 0;
100
- 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("|");
108
+ 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("|");
101
109
  var sync1 = syncModuleCache.get(key);
102
110
  if (!sync1) {
103
- var _ref, _ref1;
104
- var _config_syncOptions, _config_syncOptions1;
105
- 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"})`);
106
111
  var authConfig = config.auth ? {
107
112
  useToken: config.auth.useToken,
108
113
  token: config.auth.token,
@@ -325,19 +330,47 @@ function useFrappeCollection(config, doctype, options) {
325
330
  [entry, stableErrorHandler]);
326
331
  return entry ? entry.collection : void 0;
327
332
  }
333
+ var idleCatchUpState = Object.freeze({
334
+ refreshing: false,
335
+ stale: false,
336
+ error: null
337
+ });
338
+ function useFrappeCatchUp(config) {
339
+ var sync = getFrappeSyncModule(config);
340
+ var subscribe = (0, import_react.useCallback)(function (listener) {
341
+ var _ref;
342
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.subscribeStore(listener)) !== null && _ref !== void 0 ? _ref : function () {};
343
+ }, [sync]);
344
+ var snapshot = (0, import_react.useCallback)(function () {
345
+ var _ref;
346
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.getCatchUpState()) !== null && _ref !== void 0 ? _ref : idleCatchUpState;
347
+ }, [sync]);
348
+ var state = (0, import_react.useSyncExternalStore)(subscribe, snapshot, function () {
349
+ return idleCatchUpState;
350
+ });
351
+ var retry = (0, import_react.useCallback)(function () {
352
+ var _ref;
353
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.catchUp()) !== null && _ref !== void 0 ? _ref : Promise.resolve(idleCatchUpState);
354
+ }, [sync]);
355
+ return (0, import_react.useMemo)(function () {
356
+ return {
357
+ ...state,
358
+ retry
359
+ };
360
+ }, [state, retry]);
361
+ }
328
362
  var DISCONNECTED_STATE = Object.freeze({
329
363
  connected: false,
330
364
  everConnected: false
331
365
  });
332
366
  function useFrappeConnection(config) {
333
367
  var [state, setState] = (0, import_react.useState)(DISCONNECTED_STATE);
368
+ var syncModule = config && !config.fixtures && config.realtime !== false ? getSyncModule(config) : void 0;
334
369
  (0, import_react.useEffect)(function () {
335
- if (!config || config.fixtures || config.realtime === false || !(0, import_util.isBrowser)()) {
370
+ if (!syncModule) {
336
371
  setState(DISCONNECTED_STATE);
337
372
  return;
338
373
  }
339
- var syncModule = getSyncModule(config);
340
- if (!syncModule) return;
341
374
  var read = function read2() {
342
375
  var next = syncModule.getConnectionState();
343
376
  setState(function (prev) {
@@ -348,16 +381,15 @@ function useFrappeConnection(config) {
348
381
  return syncModule.subscribeStore(read);
349
382
  },
350
383
  // eslint-disable-next-line react-hooks/exhaustive-deps
351
- [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)]);
384
+ [syncModule]);
352
385
  return (config === null || config === void 0 ? void 0 : config.realtime) === false ? DISCONNECTED_STATE : state;
353
386
  }
354
387
  function useFrappeDoctypeEvents(config, doctype, onEvent) {
355
388
  var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
356
389
  var handlerRef = (0, import_react.useRef)(onEvent);
357
390
  handlerRef.current = onEvent;
391
+ var syncModule = enabled && config && !config.fixtures && config.realtime !== false && doctype ? getSyncModule(config) : void 0;
358
392
  (0, import_react.useEffect)(function () {
359
- if (!enabled || !config || config.fixtures || config.realtime === false || !doctype || !(0, import_util.isBrowser)()) return;
360
- var syncModule = getSyncModule(config);
361
393
  if (!syncModule) return;
362
394
  syncModule.watchDoctype(doctype);
363
395
  var unsubscribe = syncModule.subscribeRealtimeEvents(function (event) {
@@ -374,21 +406,20 @@ function useFrappeDoctypeEvents(config, doctype, onEvent) {
374
406
  };
375
407
  },
376
408
  // eslint-disable-next-line react-hooks/exhaustive-deps
377
- [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]);
409
+ [syncModule, doctype]);
378
410
  }
379
411
  var EMPTY_LEDGER = [];
380
412
  function useFrappePendingMutations(config, doctype) {
381
413
  var [entries, setEntries] = (0, import_react.useState)(EMPTY_LEDGER);
382
414
  var syncModuleRef = (0, import_react.useRef)(void 0);
415
+ var syncModule = getFrappeSyncModule(config);
383
416
  (0, import_react.useEffect)(function () {
384
- if (!config || !(0, import_util.isBrowser)()) {
417
+ if (!syncModule) {
385
418
  setEntries(EMPTY_LEDGER);
386
419
  return;
387
420
  }
388
- var syncModule = getSyncModule(config);
389
- if (!syncModule) return;
390
421
  syncModuleRef.current = syncModule;
391
- var lastSignature = "";
422
+ var lastSignature;
392
423
  var read = function read2() {
393
424
  var next = syncModule.getMutationEntries(doctype);
394
425
  var signature = next.map(function (e) {
@@ -399,10 +430,14 @@ function useFrappePendingMutations(config, doctype) {
399
430
  setEntries(next.length === 0 ? EMPTY_LEDGER : next);
400
431
  };
401
432
  read();
402
- return syncModule.subscribeStore(read);
433
+ var unsubscribe = syncModule.subscribeStore(read);
434
+ return function () {
435
+ unsubscribe();
436
+ syncModuleRef.current = void 0;
437
+ };
403
438
  },
404
439
  // eslint-disable-next-line react-hooks/exhaustive-deps
405
- [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]);
440
+ [syncModule, doctype]);
406
441
  var retry = (0, import_react.useCallback)(async function () {
407
442
  var _syncModuleRef_current;
408
443
  await ((_syncModuleRef_current = syncModuleRef.current) === null || _syncModuleRef_current === void 0 ? void 0 : _syncModuleRef_current.replayPending());
@@ -525,9 +560,8 @@ function useFrappeInfiniteList(options) {
525
560
  var subscriptionIdRef = (0, import_react.useRef)(void 0);
526
561
  var syncModuleRef = (0, import_react.useRef)(void 0);
527
562
  var filtersKey = JSON.stringify(filters);
563
+ var syncModule = getFrappeSyncModule(config);
528
564
  (0, import_react.useEffect)(function () {
529
- if (!config || !(0, import_util.isBrowser)()) return;
530
- var syncModule = getSyncModule(config);
531
565
  if (!syncModule) return;
532
566
  syncModuleRef.current = syncModule;
533
567
  var cancelled = false;
@@ -577,21 +611,22 @@ function useFrappeInfiniteList(options) {
577
611
  syncModule.unsubscribe(subscriptionIdRef.current);
578
612
  subscriptionIdRef.current = void 0;
579
613
  }
614
+ syncModuleRef.current = void 0;
580
615
  };
581
616
  },
582
617
  // eslint-disable-next-line react-hooks/exhaustive-deps
583
- [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]);
618
+ [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]);
584
619
  var loadMore = (0, import_react.useCallback)(async function () {
585
- var syncModule = syncModuleRef.current;
620
+ var syncModule2 = syncModuleRef.current;
586
621
  var subId = subscriptionIdRef.current;
587
- if (!syncModule || !subId || !hasMore || isLoadingMore) return;
622
+ if (!syncModule2 || !subId || !hasMore || isLoadingMore) return;
588
623
  setIsLoadingMore(true);
589
624
  setError(null);
590
625
  try {
591
- var currentDocs = syncModule.getDocsForSubscription(subId);
626
+ var currentDocs = syncModule2.getDocsForSubscription(subId);
592
627
  var lastDoc = currentDocs[currentDocs.length - 1];
593
628
  if (!lastDoc) return;
594
- await syncModule.getNextBatch(subId, lastDoc.name, pageSize);
629
+ await syncModule2.getNextBatch(subId, lastDoc.name, pageSize);
595
630
  } catch (err) {
596
631
  setError(_instanceof(err, Error) ? err : new Error(String(err)));
597
632
  } finally {
@@ -599,16 +634,16 @@ function useFrappeInfiniteList(options) {
599
634
  }
600
635
  }, [hasMore, isLoadingMore, pageSize]);
601
636
  var refresh = (0, import_react.useCallback)(async function () {
602
- var syncModule = syncModuleRef.current;
603
- if (!syncModule || !subscriptionIdRef.current) return;
604
- syncModule.unsubscribe(subscriptionIdRef.current);
637
+ var syncModule2 = syncModuleRef.current;
638
+ if (!syncModule2 || !subscriptionIdRef.current) return;
639
+ syncModule2.unsubscribe(subscriptionIdRef.current);
605
640
  subscriptionIdRef.current = void 0;
606
641
  setItems([]);
607
642
  setHasMore(true);
608
643
  setIsLoading(true);
609
644
  setError(null);
610
645
  try {
611
- var result = await syncModule.subscribe({
646
+ var result = await syncModule2.subscribe({
612
647
  doctype,
613
648
  fields,
614
649
  filters,
@@ -617,8 +652,8 @@ function useFrappeInfiniteList(options) {
617
652
  progressive: true
618
653
  });
619
654
  subscriptionIdRef.current = result.subscriptionId;
620
- var docs = syncModule.getDocsForSubscription(result.subscriptionId);
621
- var pageInfo = syncModule.getPageInfo(result.subscriptionId);
655
+ var docs = syncModule2.getDocsForSubscription(result.subscriptionId);
656
+ var pageInfo = syncModule2.getPageInfo(result.subscriptionId);
622
657
  setItems(transform ? docs.map(transform) : docs);
623
658
  setHasMore(pageInfo.hasMore);
624
659
  } catch (err) {
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","frappeReact_exports","__export","__getActiveSyncModule","getFrappeSyncModule","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useFrappeInfiniteList","useFrappePendingMutations","useInfiniteScroll","module","exports","import_platform","require","import_react","import_collection","import_http","import_db","import_fixtureDb","import_realtime","import_sync","import_types","import_util","_instanceof","left","right","Symbol","hasInstance","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","values","iterator","_step","next","done","sync","err","return","config","getSyncModule","_config_socketPort","_config_socketBaseURL","_config_siteName","isBrowser","fixtures","get","db","FixtureDbModule","SyncModule","syncOptions","set","baseURL","key","realtime","socketPort","socketBaseURL","siteName","join","sync1","_ref","_ref1","_config_syncOptions","_config_syncOptions1","console","debug","persistKey","cdcInterval","authConfig","auth","useToken","token","type","sessionId","http","HttpClient","db1","DbModule","appName","realtimeConfig","socketOptions","RealtimeModule","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","_entry_collection_subscriberCount","_entry_collection_cleanup","_entry_collection","refCount","cleaned","subscriberCount","_entry","_gcForceDeadline","gcForceDeadline","Date","now","delete","releaseFrappeCollectionSync","Promise","resolve","cleanup","call","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","createFrappeCollection","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","tick1","errorHandlerRef","useRef","current","stableErrorHandler","useCallback","_errorHandlerRef_current","setStaleEntryBump","useState","useEffect","_retained_collection_on","_retained_collection","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","DISCONNECTED_STATE","Object","freeze","connected","everConnected","state","setState","read","read2","getConnectionState","prev","subscribeStore","onEvent","enabled","arguments","length","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","retry","_syncModuleRef_current","replayPending","dismiss","dismissMutation","useMemo","pending","filter","Status","Pending","failed","Failed","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","isWindowDefined","IntersectionObserver","node","disconnect","visible","isIntersecting","observe","sentinelRef","_config_auth","pageSize","transform","items","setItems","setHasMore","setIsLoading","setError","subscriptionIdRef","filtersKey"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","frappeReact_exports","__export","__getActiveSyncModule","getFrappeSyncModule","useFrappeCatchUp","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useFrappeInfiniteList","useFrappePendingMutations","useInfiniteScroll","module","exports","import_platform","require","import_react","import_collection","import_http","import_db","import_fixtureDb","import_realtime","import_sync","import_types","import_syncOptionsKey","import_util","_instanceof","left","right","Symbol","hasInstance","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","values","iterator","_step","next","done","sync","err","return","config","getSyncModule","_config_socketPort","_config_socketBaseURL","_config_siteName","isBrowser","optionsKey","syncOptionsKey","syncOptions","fixtures","cache","get","set","db","FixtureDbModule","SyncModule","baseURL","key","realtime","socketPort","socketBaseURL","siteName","join","sync1","authConfig","auth","useToken","token","type","sessionId","http","HttpClient","db1","DbModule","appName","realtimeConfig","socketOptions","RealtimeModule","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","_entry_collection_subscriberCount","_entry_collection_cleanup","_entry_collection","refCount","cleaned","subscriberCount","_entry","_gcForceDeadline","gcForceDeadline","Date","now","delete","releaseFrappeCollectionSync","Promise","resolve","cleanup","call","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","createFrappeCollection","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","tick1","errorHandlerRef","useRef","current","stableErrorHandler","useCallback","_errorHandlerRef_current","setStaleEntryBump","useState","useEffect","_retained_collection_on","_retained_collection","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","idleCatchUpState","Object","freeze","refreshing","stale","subscribe","listener","_ref","subscribeStore","snapshot","getCatchUpState","state","useSyncExternalStore","retry","catchUp","useMemo","DISCONNECTED_STATE","connected","everConnected","setState","read","read2","getConnectionState","prev","onEvent","enabled","arguments","length","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","_syncModuleRef_current","replayPending","dismiss","dismissMutation","pending","filter","Status","Pending","failed","Failed","hasMore","isLoading","onLoadMore","root","rootMargin","threshold","debounceMs","isVisible","setIsVisible","isLoadingMore","setIsLoadingMore","observerRef","sentinelNodeRef","debounceTimerRef","lastLoadTimeRef","loadMore","isWindowDefined","IntersectionObserver","node","visible","isIntersecting","observe","disconnect","sentinelRef"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -124,6 +124,7 @@ __export(index_exports, {
124
124
  useDebouncedSearch: () => import_pacer.useDebouncedSearch,
125
125
  useDocTypeMeta: () => import_doctype.useDocTypeMeta,
126
126
  useDocTypeSearch: () => import_doctype.useDocTypeSearch,
127
+ useFrappeCatchUp: () => import_frappeReact.useFrappeCatchUp,
127
128
  useFrappeCollection: () => import_frappeReact.useFrappeCollection,
128
129
  useFrappeConnection: () => import_frappeReact.useFrappeConnection,
129
130
  useFrappeDoctypeEvents: () => import_frappeReact.useFrappeDoctypeEvents,