@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
@@ -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";
@@ -51,22 +52,25 @@ function getFrappeSyncModule(config) {
51
52
  function getSyncModule(config) {
52
53
  var _config_socketPort, _config_socketBaseURL, _config_siteName;
53
54
  if (!isBrowser()) return void 0;
55
+ var optionsKey = syncOptionsKey(config.syncOptions);
54
56
  if (config.fixtures) {
55
- var sync = fixtureSyncModuleCache.get(config.fixtures);
57
+ var cache = fixtureSyncModuleCache.get(config.fixtures);
58
+ if (!cache) {
59
+ cache = /* @__PURE__ */new Map();
60
+ fixtureSyncModuleCache.set(config.fixtures, cache);
61
+ }
62
+ var sync = cache.get(optionsKey);
56
63
  if (!sync) {
57
64
  var db = new FixtureDbModule(config.fixtures);
58
65
  sync = new SyncModule(db, void 0, config.syncOptions);
59
- fixtureSyncModuleCache.set(config.fixtures, sync);
66
+ cache.set(optionsKey, sync);
60
67
  }
61
68
  return sync;
62
69
  }
63
70
  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("|");
71
+ 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
72
  var sync1 = syncModuleCache.get(key);
66
73
  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
74
  var authConfig = config.auth ? {
71
75
  useToken: config.auth.useToken,
72
76
  token: config.auth.token,
@@ -289,19 +293,47 @@ function useFrappeCollection(config, doctype, options) {
289
293
  [entry, stableErrorHandler]);
290
294
  return entry ? entry.collection : void 0;
291
295
  }
296
+ var idleCatchUpState = Object.freeze({
297
+ refreshing: false,
298
+ stale: false,
299
+ error: null
300
+ });
301
+ function useFrappeCatchUp(config) {
302
+ var sync = getFrappeSyncModule(config);
303
+ var subscribe = useCallback(function (listener) {
304
+ var _ref;
305
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.subscribeStore(listener)) !== null && _ref !== void 0 ? _ref : function () {};
306
+ }, [sync]);
307
+ var snapshot = useCallback(function () {
308
+ var _ref;
309
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.getCatchUpState()) !== null && _ref !== void 0 ? _ref : idleCatchUpState;
310
+ }, [sync]);
311
+ var state = useSyncExternalStore(subscribe, snapshot, function () {
312
+ return idleCatchUpState;
313
+ });
314
+ var retry = useCallback(function () {
315
+ var _ref;
316
+ return (_ref = sync === null || sync === void 0 ? void 0 : sync.catchUp()) !== null && _ref !== void 0 ? _ref : Promise.resolve(idleCatchUpState);
317
+ }, [sync]);
318
+ return useMemo(function () {
319
+ return {
320
+ ...state,
321
+ retry
322
+ };
323
+ }, [state, retry]);
324
+ }
292
325
  var DISCONNECTED_STATE = Object.freeze({
293
326
  connected: false,
294
327
  everConnected: false
295
328
  });
296
329
  function useFrappeConnection(config) {
297
330
  var [state, setState] = useState(DISCONNECTED_STATE);
331
+ var syncModule = config && !config.fixtures && config.realtime !== false ? getSyncModule(config) : void 0;
298
332
  useEffect(function () {
299
- if (!config || config.fixtures || config.realtime === false || !isBrowser()) {
333
+ if (!syncModule) {
300
334
  setState(DISCONNECTED_STATE);
301
335
  return;
302
336
  }
303
- var syncModule = getSyncModule(config);
304
- if (!syncModule) return;
305
337
  var read = function read2() {
306
338
  var next = syncModule.getConnectionState();
307
339
  setState(function (prev) {
@@ -312,16 +344,15 @@ function useFrappeConnection(config) {
312
344
  return syncModule.subscribeStore(read);
313
345
  },
314
346
  // 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)]);
347
+ [syncModule]);
316
348
  return (config === null || config === void 0 ? void 0 : config.realtime) === false ? DISCONNECTED_STATE : state;
317
349
  }
318
350
  function useFrappeDoctypeEvents(config, doctype, onEvent) {
319
351
  var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
320
352
  var handlerRef = useRef(onEvent);
321
353
  handlerRef.current = onEvent;
354
+ var syncModule = enabled && config && !config.fixtures && config.realtime !== false && doctype ? getSyncModule(config) : void 0;
322
355
  useEffect(function () {
323
- if (!enabled || !config || config.fixtures || config.realtime === false || !doctype || !isBrowser()) return;
324
- var syncModule = getSyncModule(config);
325
356
  if (!syncModule) return;
326
357
  syncModule.watchDoctype(doctype);
327
358
  var unsubscribe = syncModule.subscribeRealtimeEvents(function (event) {
@@ -338,21 +369,20 @@ function useFrappeDoctypeEvents(config, doctype, onEvent) {
338
369
  };
339
370
  },
340
371
  // 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]);
372
+ [syncModule, doctype]);
342
373
  }
343
374
  var EMPTY_LEDGER = [];
344
375
  function useFrappePendingMutations(config, doctype) {
345
376
  var [entries, setEntries] = useState(EMPTY_LEDGER);
346
377
  var syncModuleRef = useRef(void 0);
378
+ var syncModule = getFrappeSyncModule(config);
347
379
  useEffect(function () {
348
- if (!config || !isBrowser()) {
380
+ if (!syncModule) {
349
381
  setEntries(EMPTY_LEDGER);
350
382
  return;
351
383
  }
352
- var syncModule = getSyncModule(config);
353
- if (!syncModule) return;
354
384
  syncModuleRef.current = syncModule;
355
- var lastSignature = "";
385
+ var lastSignature;
356
386
  var read = function read2() {
357
387
  var next = syncModule.getMutationEntries(doctype);
358
388
  var signature = next.map(function (e) {
@@ -363,10 +393,14 @@ function useFrappePendingMutations(config, doctype) {
363
393
  setEntries(next.length === 0 ? EMPTY_LEDGER : next);
364
394
  };
365
395
  read();
366
- return syncModule.subscribeStore(read);
396
+ var unsubscribe = syncModule.subscribeStore(read);
397
+ return function () {
398
+ unsubscribe();
399
+ syncModuleRef.current = void 0;
400
+ };
367
401
  },
368
402
  // 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]);
403
+ [syncModule, doctype]);
370
404
  var retry = useCallback(async function () {
371
405
  var _syncModuleRef_current;
372
406
  await ((_syncModuleRef_current = syncModuleRef.current) === null || _syncModuleRef_current === void 0 ? void 0 : _syncModuleRef_current.replayPending());
@@ -489,9 +523,8 @@ function useFrappeInfiniteList(options) {
489
523
  var subscriptionIdRef = useRef(void 0);
490
524
  var syncModuleRef = useRef(void 0);
491
525
  var filtersKey = JSON.stringify(filters);
526
+ var syncModule = getFrappeSyncModule(config);
492
527
  useEffect(function () {
493
- if (!config || !isBrowser()) return;
494
- var syncModule = getSyncModule(config);
495
528
  if (!syncModule) return;
496
529
  syncModuleRef.current = syncModule;
497
530
  var cancelled = false;
@@ -541,21 +574,22 @@ function useFrappeInfiniteList(options) {
541
574
  syncModule.unsubscribe(subscriptionIdRef.current);
542
575
  subscriptionIdRef.current = void 0;
543
576
  }
577
+ syncModuleRef.current = void 0;
544
578
  };
545
579
  },
546
580
  // 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]);
581
+ [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
582
  var loadMore = useCallback(async function () {
549
- var syncModule = syncModuleRef.current;
583
+ var syncModule2 = syncModuleRef.current;
550
584
  var subId = subscriptionIdRef.current;
551
- if (!syncModule || !subId || !hasMore || isLoadingMore) return;
585
+ if (!syncModule2 || !subId || !hasMore || isLoadingMore) return;
552
586
  setIsLoadingMore(true);
553
587
  setError(null);
554
588
  try {
555
- var currentDocs = syncModule.getDocsForSubscription(subId);
589
+ var currentDocs = syncModule2.getDocsForSubscription(subId);
556
590
  var lastDoc = currentDocs[currentDocs.length - 1];
557
591
  if (!lastDoc) return;
558
- await syncModule.getNextBatch(subId, lastDoc.name, pageSize);
592
+ await syncModule2.getNextBatch(subId, lastDoc.name, pageSize);
559
593
  } catch (err) {
560
594
  setError(_instanceof(err, Error) ? err : new Error(String(err)));
561
595
  } finally {
@@ -563,16 +597,16 @@ function useFrappeInfiniteList(options) {
563
597
  }
564
598
  }, [hasMore, isLoadingMore, pageSize]);
565
599
  var refresh = useCallback(async function () {
566
- var syncModule = syncModuleRef.current;
567
- if (!syncModule || !subscriptionIdRef.current) return;
568
- syncModule.unsubscribe(subscriptionIdRef.current);
600
+ var syncModule2 = syncModuleRef.current;
601
+ if (!syncModule2 || !subscriptionIdRef.current) return;
602
+ syncModule2.unsubscribe(subscriptionIdRef.current);
569
603
  subscriptionIdRef.current = void 0;
570
604
  setItems([]);
571
605
  setHasMore(true);
572
606
  setIsLoading(true);
573
607
  setError(null);
574
608
  try {
575
- var result = await syncModule.subscribe({
609
+ var result = await syncModule2.subscribe({
576
610
  doctype,
577
611
  fields,
578
612
  filters,
@@ -581,8 +615,8 @@ function useFrappeInfiniteList(options) {
581
615
  progressive: true
582
616
  });
583
617
  subscriptionIdRef.current = result.subscriptionId;
584
- var docs = syncModule.getDocsForSubscription(result.subscriptionId);
585
- var pageInfo = syncModule.getPageInfo(result.subscriptionId);
618
+ var docs = syncModule2.getDocsForSubscription(result.subscriptionId);
619
+ var pageInfo = syncModule2.getPageInfo(result.subscriptionId);
586
620
  setItems(transform ? docs.map(transform) : docs);
587
621
  setHasMore(pageInfo.hasMore);
588
622
  } catch (err) {
@@ -611,5 +645,5 @@ function useFrappeInfiniteList(options) {
611
645
  totalLoaded: items.length
612
646
  };
613
647
  }
614
- export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
648
+ export { __getActiveSyncModule, getFrappeSyncModule, useFrappeCatchUp, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll };
615
649
  //# sourceMappingURL=frappeReact.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isWindowDefined","useCallback","useEffect","useMemo","useRef","useState","createFrappeCollection","releaseFrappeCollectionSync","HttpClient","DbModule","FixtureDbModule","RealtimeModule","SyncModule","Status","isBrowser","_instanceof","left","right","Symbol","hasInstance","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","__getActiveSyncModule","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","values","iterator","_step","next","done","sync","value","err","return","getFrappeSyncModule","config","getSyncModule","_config_socketPort","_config_socketBaseURL","_config_siteName","fixtures","get","db","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","db1","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","_entry_collection_subscriberCount","_entry_collection_cleanup","_entry_collection","refCount","cleaned","subscriberCount","_entry","_gcForceDeadline","gcForceDeadline","Date","now","delete","Promise","resolve","cleanup","call","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","tick1","useFrappeCollection","errorHandlerRef","current","stableErrorHandler","_errorHandlerRef_current","setStaleEntryBump","_retained_collection_on","_retained_collection","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","DISCONNECTED_STATE","Object","freeze","connected","everConnected","useFrappeConnection","state","setState","read","read2","getConnectionState","prev","subscribeStore","useFrappeDoctypeEvents","onEvent","enabled","arguments","length","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","useFrappePendingMutations","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","retry","_syncModuleRef_current","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","_config_auth","pageSize","transform","items","setItems","setHasMore","setIsLoading","setError","subscriptionIdRef","filtersKey","cancelled"],"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","_instanceof","left","right","Symbol","hasInstance","syncModuleCache","Map","fixtureSyncModuleCache","WeakMap","__getActiveSyncModule","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","values","iterator","_step","next","done","sync","value","err","return","getFrappeSyncModule","config","getSyncModule","_config_socketPort","_config_socketBaseURL","_config_siteName","optionsKey","syncOptions","fixtures","cache","get","set","db","baseURL","key","realtime","socketPort","socketBaseURL","siteName","join","sync1","authConfig","auth","useToken","token","type","sessionId","http","db1","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","_entry_collection_subscriberCount","_entry_collection_cleanup","_entry_collection","refCount","cleaned","subscriberCount","_entry","_gcForceDeadline","gcForceDeadline","Date","now","delete","Promise","resolve","cleanup","call","catch","getOrCreateSharedCollection","syncModule","existingCache","created","errorHandlers","Set","hasSyncError","lastSyncError","onSyncError","error","handler","retainSharedCollection","add","releaseSharedCollection","Math","max","cleanupEntryCollectionWhenIdle","deadline","tick","tick1","useFrappeCollection","errorHandlerRef","current","stableErrorHandler","_errorHandlerRef_current","setStaleEntryBump","_retained_collection_on","_retained_collection","n","retained","retainedCache","retainedKey","unsubscribeStatus","on","event","idleCatchUpState","Object","freeze","refreshing","stale","useFrappeCatchUp","subscribe","listener","_ref","subscribeStore","snapshot","getCatchUpState","state","retry","catchUp","DISCONNECTED_STATE","connected","everConnected","useFrappeConnection","setState","read","read2","getConnectionState","prev","useFrappeDoctypeEvents","onEvent","enabled","arguments","length","handlerRef","watchDoctype","unsubscribe","subscribeRealtimeEvents","payload","unwatchDoctype","EMPTY_LEDGER","useFrappePendingMutations","entries","setEntries","syncModuleRef","lastSignature","getMutationEntries","signature","map","e","retryCount","_syncModuleRef_current","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","_config_auth","pageSize","transform","items","setItems","setHasMore"],"sources":["../../src/frappeReact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { RealtimeModule, RealtimePlatform } from "./realtime.mjs";
7
7
  import { SyncModule } from "./sync/index.mjs";
8
8
  import { createFrappeCollection, frappeCollectionOptions, createFixtureCollection, fixtureCollectionOptions } from "./collection.mjs";
9
9
  import { createOptimisticAction, isOptimisticTempId, newOptimisticTempId, OPTIMISTIC_TEMP_PREFIX, runOptimisticRpc } from "./optimistic.mjs";
10
- import { useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappePendingMutations, useInfiniteScroll, useFrappeInfiniteList, getFrappeSyncModule, __getActiveSyncModule } from "./frappeReact.mjs";
10
+ import { useFrappeCollection, useFrappeCatchUp, useFrappeConnection, useFrappeDoctypeEvents, useFrappePendingMutations, useInfiniteScroll, useFrappeInfiniteList, getFrappeSyncModule, __getActiveSyncModule } from "./frappeReact.mjs";
11
11
  import { useDebouncedSearch, useThrottledPagination, createRateLimitedBatch } from "./pacer.mjs";
12
12
  import { useLiveQuery } from "./useLiveQuery.mjs";
13
13
  import { createCollection, createTransaction } from "@tanstack/db";
@@ -22,5 +22,5 @@ import { MergeStrategy, FieldMergeStrategy } from "./sync/merge.mjs";
22
22
  import { matchesFilters, validateFilters, normalizeFilters, extractFilterFields, extractSingleName, formatFilter, hasServerOnlyOperators, canEvaluateClientSide, isTreeOperator, getClientEvaluationBlockers, FilterOperator } from "./sync/filters.mjs";
23
23
  import { TreeDbModule } from "./db.mjs";
24
24
  import { default as default2 } from "./plugin/index.mjs";
25
- export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, OPTIMISTIC_TEMP_PREFIX, Operation, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, defaultPageLength, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, getFrappeSyncModule, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isOptimisticTempId, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, newOptimisticTempId, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, runOptimisticRpc, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
25
+ export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, OPTIMISTIC_TEMP_PREFIX, Operation, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, defaultPageLength, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, getFrappeSyncModule, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isOptimisticTempId, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, newOptimisticTempId, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, runOptimisticRpc, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCatchUp, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
26
26
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","isOptimisticTempId","newOptimisticTempId","OPTIMISTIC_TEMP_PREFIX","runOptimisticRpc","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useFrappePendingMutations","useInfiniteScroll","useFrappeInfiniteList","getFrappeSyncModule","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","defaultPageLength","Order","Operation","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,SAAA,QAAiB;AAE1B,SAASC,UAAA,QAAkB;AAC3B,SAASC,UAAA,QAAkB;AAC3B,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,cAAA,EAAgBC,gBAAA,QAAwB;AAajD,SAASC,UAAA,QAAkB;AAG3B,SACEC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,EACAC,wBAAA,QACK;AAEP,SACEC,sBAAA,EACAC,kBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,gBAAA,QACK;AAIP,SACEC,mBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,yBAAA,EACAC,iBAAA,EACAC,qBAAA,EACAC,mBAAA,EACAC,qBAAA,QACK;AAaP,SAASC,kBAAA,EAAoBC,sBAAA,EAAwBC,sBAAA,QAA8B;AAYnF,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,EAAkBC,iBAAA,QAAyB;AAGpD,SACEC,EAAA,EACAC,EAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,OAAA,EACAC,IAAA,EACAC,KAAA,EACAC,WAAA,EACAC,MAAA,EACAC,KAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,QACK;AAGP,SACEC,SAAA,EACAC,cAAA,EACAC,SAAA,EACAC,cAAA,EACAC,WAAA,EACAC,gBAAA,EACAC,MAAA,EACAC,WAAA,EACAC,OAAA,EACAC,YAAA,EACAC,QAAA,EACAC,aAAA,EACAC,QAAA,EACAC,aAAA,EACAC,SAAA,EACAC,cAAA,EACAC,KAAA,EACAC,UAAA,EACAC,KAAA,EACAC,UAAA,QACK;AAGP,cAAc;AAGd,SACEC,UAAA,EACAC,SAAA,EACAC,SAAA,EACAC,YAAA,EACAC,aAAA,EACAC,eAAA,EACAC,qBAAA,QACK;AAEP,SAASC,WAAA,QAAmB;AAmB5B,SACEC,cAAA,EACAC,aAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,QACK;AAiCP,SAASC,iBAAA,EAAmBC,KAAA,EAAOC,SAAA,QAAiB;AACpD,SAASC,aAAA,EAAeC,kBAAA,QAA0B;AAIlD,SACEC,cAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,mBAAA,EACAC,iBAAA,EACAC,YAAA,EACAC,sBAAA,EACAC,qBAAA,EACAC,cAAA,EACAC,2BAAA,EACAC,cAAA,QACK;AAWP,SAASC,YAAA,QAAoB;AAS7B,SAAoBC,OAAA,IAAXC,QAAA,QAA+B","ignoreList":[]}
1
+ {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","isOptimisticTempId","newOptimisticTempId","OPTIMISTIC_TEMP_PREFIX","runOptimisticRpc","useFrappeCollection","useFrappeCatchUp","useFrappeConnection","useFrappeDoctypeEvents","useFrappePendingMutations","useInfiniteScroll","useFrappeInfiniteList","getFrappeSyncModule","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","defaultPageLength","Order","Operation","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,SAAA,QAAiB;AAE1B,SAASC,UAAA,QAAkB;AAC3B,SAASC,UAAA,QAAkB;AAC3B,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,cAAA,EAAgBC,gBAAA,QAAwB;AAajD,SAASC,UAAA,QAAkB;AAG3B,SACEC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,EACAC,wBAAA,QACK;AAEP,SACEC,sBAAA,EACAC,kBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,gBAAA,QACK;AAIP,SACEC,mBAAA,EACAC,gBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,yBAAA,EACAC,iBAAA,EACAC,qBAAA,EACAC,mBAAA,EACAC,qBAAA,QACK;AAkBP,SAASC,kBAAA,EAAoBC,sBAAA,EAAwBC,sBAAA,QAA8B;AAYnF,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,EAAkBC,iBAAA,QAAyB;AAGpD,SACEC,EAAA,EACAC,EAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,OAAA,EACAC,IAAA,EACAC,KAAA,EACAC,WAAA,EACAC,MAAA,EACAC,KAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,QACK;AAGP,SACEC,SAAA,EACAC,cAAA,EACAC,SAAA,EACAC,cAAA,EACAC,WAAA,EACAC,gBAAA,EACAC,MAAA,EACAC,WAAA,EACAC,OAAA,EACAC,YAAA,EACAC,QAAA,EACAC,aAAA,EACAC,QAAA,EACAC,aAAA,EACAC,SAAA,EACAC,cAAA,EACAC,KAAA,EACAC,UAAA,EACAC,KAAA,EACAC,UAAA,QACK;AAGP,cAAc;AAGd,SACEC,UAAA,EACAC,SAAA,EACAC,SAAA,EACAC,YAAA,EACAC,aAAA,EACAC,eAAA,EACAC,qBAAA,QACK;AAEP,SAASC,WAAA,QAAmB;AAmB5B,SACEC,cAAA,EACAC,aAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,QACK;AAkCP,SAASC,iBAAA,EAAmBC,KAAA,EAAOC,SAAA,QAAiB;AACpD,SAASC,aAAA,EAAeC,kBAAA,QAA0B;AAIlD,SACEC,cAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,mBAAA,EACAC,iBAAA,EACAC,YAAA,EACAC,sBAAA,EACAC,qBAAA,EACAC,cAAA,EACAC,2BAAA,EACAC,cAAA,QACK;AAWP,SAASC,YAAA,QAAoB;AAS7B,SAAoBC,OAAA,IAAXC,QAAA,QAA+B","ignoreList":[]}
@@ -7,7 +7,7 @@ import { RealtimeModule, RealtimePlatform } from "./realtime.native.js";
7
7
  import { SyncModule } from "./sync/index.native.js";
8
8
  import { createFrappeCollection, frappeCollectionOptions, createFixtureCollection, fixtureCollectionOptions } from "./collection.native.js";
9
9
  import { createOptimisticAction, isOptimisticTempId, newOptimisticTempId, OPTIMISTIC_TEMP_PREFIX, runOptimisticRpc } from "./optimistic.native.js";
10
- import { useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappePendingMutations, useInfiniteScroll, useFrappeInfiniteList, getFrappeSyncModule, __getActiveSyncModule } from "./frappeReact.native.js";
10
+ import { useFrappeCollection, useFrappeCatchUp, useFrappeConnection, useFrappeDoctypeEvents, useFrappePendingMutations, useInfiniteScroll, useFrappeInfiniteList, getFrappeSyncModule, __getActiveSyncModule } from "./frappeReact.native.js";
11
11
  import { useDebouncedSearch, useThrottledPagination, createRateLimitedBatch } from "./pacer.native.js";
12
12
  import { useLiveQuery } from "./useLiveQuery.native.js";
13
13
  import { createCollection, createTransaction } from "@tanstack/db";
@@ -22,5 +22,5 @@ import { MergeStrategy, FieldMergeStrategy } from "./sync/merge.native.js";
22
22
  import { matchesFilters, validateFilters, normalizeFilters, extractFilterFields, extractSingleName, formatFilter, hasServerOnlyOperators, canEvaluateClientSide, isTreeOperator, getClientEvaluationBlockers, FilterOperator } from "./sync/filters.native.js";
23
23
  import { TreeDbModule } from "./db.native.js";
24
24
  import { default as default2 } from "./plugin/index.native.js";
25
- export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, OPTIMISTIC_TEMP_PREFIX, Operation, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, defaultPageLength, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, getFrappeSyncModule, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isOptimisticTempId, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, newOptimisticTempId, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, runOptimisticRpc, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
25
+ export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, OPTIMISTIC_TEMP_PREFIX, Operation, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, defaultPageLength, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, getFrappeSyncModule, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isOptimisticTempId, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, newOptimisticTempId, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, runOptimisticRpc, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCatchUp, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useFrappePendingMutations, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
26
26
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","isOptimisticTempId","newOptimisticTempId","OPTIMISTIC_TEMP_PREFIX","runOptimisticRpc","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useFrappePendingMutations","useInfiniteScroll","useFrappeInfiniteList","getFrappeSyncModule","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","defaultPageLength","Order","Operation","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2","frappePlugin"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","isOptimisticTempId","newOptimisticTempId","OPTIMISTIC_TEMP_PREFIX","runOptimisticRpc","useFrappeCollection","useFrappeCatchUp","useFrappeConnection","useFrappeDoctypeEvents","useFrappePendingMutations","useInfiniteScroll","useFrappeInfiniteList","getFrappeSyncModule","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","defaultPageLength","Order","Operation","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2","frappePlugin"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,SAAA,QAAiB;AAE1B,SAASC,UAAA,QAAkB;AAC3B,SAASC,UAAA,QAAkB;AAC3B,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,cAAA,EAAgBC,gBAAA,QAAwB;AAajD,SAASC,UAAA,QAAkB;AAG3B,SAAAC,sBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,wBAAA;AAAA,SACEC,sBAAA,EAAAC,kBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,gBAAA;AAAA,SACAC,mBAAA,EAAAC,gBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,qBAAA;AAAA,SACAC,kBAAA,EAAAC,sBAAA,EAAAC,sBAAA;AAAA,SACAC,YAAA;AAAA,SACKC,gBAAA,EAAAC,iBAAA;AAEP,SAAAC,EAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,EAAA,EAAAC,GAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;AAAA,SACEC,SAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,gBAAA,EAAAC,MAAA,EAAAC,WAAA,EAAAC,OAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,SAAA,EAAAC,cAAA,EAAAC,KAAA,EAAAC,UAAA,EAAAC,KAAA,EAAAC,UAAA;AAAA,cACA;AAAA,SACAC,UAAA,EAAAC,SAAA,EAAAC,SAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,eAAA,EAAAC,qBAAA;AAAA,SACAC,WAAA;AAAA,SACAC,cAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,gBAAA,EAAAC,cAAA,EAAAC,eAAA;AAAA,SACKC,iBAAA,EAAAC,KAAA,EAAAC,SAAA;AAIP,SAAAC,aAAA,EAAAC,kBAAA;AAAA,SACEC,cAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,mBAAA,EAAAC,iBAAA,EAAAC,YAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,cAAA,EAAAC,2BAAA,EAAAC,cAAA;AAAA,SACAC,YAAA;AAAA,SACAC,OAAA,IAAAC,QAAA;AAAA,SAEA3C,YAAA,EACAR,cAAA,EACAM,WAAA,EACAF,gBAAA,EACAF,cAAA,EAAApD,UACK,EAkBPyD,OAAS,EAYTxD,UAAS,EACTC,QAAS,EAGT+C,SAAA,EACEsC,kBAAA,EACApF,UAAA,EACA+F,cAAA,EACAnG,SAAA,EACA6E,WAAA,EACAP,UAAA,EACAiB,aAAA,EACAxE,sBAAA,EACAuE,SAAA,EACAD,KAAA,EACA7B,MAAA,EACAF,WAAA,EACAjD,cAAA,EACAC,gBAAA,EACAC,UAAA,EACA6C,SAAA,EACAgD,YAAA,EACA3E,qBAAA,EAAAY,GAAA,EAIFgC,UAAA,EACER,aAAA,EACAM,UAAA,EACAF,cAAA,EACAF,aAAA,EACAjB,GAAA,EACAsB,KAAA,EACA4B,qBAAA,EACArB,eAAA,EACA9B,KAAA,EACAf,gBAAA,EACApB,uBAAA,EACAF,sBAAA,EACAI,sBAAA,EACAgB,sBAAA,EACAG,iBAAA,EACA6B,QAAA,EACAwB,iBAAA,EACAX,YAAA,EACAzC,EAAA,EACA4D,mBAAA,EAAAC,iBACK,EAGPlF,wBAAc,EAGdmF,YAAA,EACErF,uBAAA,EACA6F,QAAA,IAAAC,YAAA,EACAL,2BAAA,EACA3B,SAAA,EACA/C,mBAAA,EACAS,EAAA,EACAC,GAAA,EAAA6D,sBACK,EAEPrD,KAAA,EAmBAF,OAAA,EACEoC,qBAAA,EACAhC,MAAA,EACA/B,kBAAA,EACAoF,cAAA,EACAtD,WAAA,EACAF,IAAA,EAAAN,EAAA,EAmCFC,GAAA,EACAqD,cAAS,EAITxC,GAAA,EACED,GAAA,EACAlC,mBAAA,EACA6E,gBAAA,EACApD,GAAA,EACAD,EAAA,EACA4C,cAAA,EACAC,eAAA,EACAjB,KAAA,EACAF,SAAA,EACAhD,gBAAA,EACAwD,SAAA,EAAAE,aACK,EAWP3B,GAAA,EASAe,QAAoB,E","ignoreList":[]}
@@ -16,6 +16,11 @@ function getBrowserJournalStorage() {
16
16
  return void 0;
17
17
  }
18
18
  }
19
+ const idleCatchUpState = Object.freeze({
20
+ refreshing: false,
21
+ stale: false,
22
+ error: null
23
+ });
19
24
  class SyncModule {
20
25
  normalizedCache;
21
26
  mutationJournal;
@@ -41,6 +46,10 @@ class SyncModule {
41
46
  db;
42
47
  realtime;
43
48
  options;
49
+ catchUpState = idleCatchUpState;
50
+ catchUpEpoch = 0;
51
+ disposed = false;
52
+ catchUpRun;
44
53
  constructor(db, realtime, options = {}) {
45
54
  this.db = db;
46
55
  this.realtime = realtime;
@@ -66,9 +75,9 @@ class SyncModule {
66
75
  const realtimeOptions = {
67
76
  ...this.options,
68
77
  onResetCache: () => this.resetCache(),
69
- onBackfillAll: () => this.backfill({
70
- scope: BackfillScope.All
71
- }),
78
+ onBackfillAll: () => {
79
+ void this.catchUp();
80
+ },
72
81
  // Realtime reconciliation mutates cache/membership outside the public
73
82
  // mutate/backfill entry points — bridge those changes to store listeners.
74
83
  onStoreChange: () => this.emit(),
@@ -86,20 +95,20 @@ class SyncModule {
86
95
  * Stores cleanup functions returned by each subscription.
87
96
  */
88
97
  setupWindowEvents() {
89
- this.cleanupFocus = onAppFocus(() => this.backfill({
90
- scope: BackfillScope.All
91
- }));
98
+ this.cleanupFocus = onAppFocus(() => {
99
+ void this.catchUp();
100
+ });
92
101
  this.cleanupFocusReplay = onAppFocus(() => {
93
102
  if (this.mutationJournal.listPending().length > 0) void this.replayPending();
94
103
  });
95
- this.cleanupOnlineBackfill = onOnline(() => this.backfill({
96
- scope: BackfillScope.All
97
- }));
104
+ this.cleanupOnlineBackfill = onOnline(() => {
105
+ void this.catchUp();
106
+ });
98
107
  this.cleanupOnlineReplay = onOnline(() => this.replayPending());
99
108
  if (this.options.cdcInterval && this.options.cdcInterval > 0) {
100
- this.cdcIntervalHandle = setInterval(() => this.backfill({
101
- scope: BackfillScope.All
102
- }), this.options.cdcInterval);
109
+ this.cdcIntervalHandle = setInterval(() => {
110
+ void this.catchUp();
111
+ }, this.options.cdcInterval);
103
112
  }
104
113
  }
105
114
  /**
@@ -112,6 +121,9 @@ class SyncModule {
112
121
  * the subscription is marked stale until the next successful backfill.
113
122
  */
114
123
  async subscribe(query) {
124
+ if (this.options.catchUpStrategy === "snapshot" && query.progressive) {
125
+ throw new Error("Snapshot catch-up does not support progressive subscriptions");
126
+ }
115
127
  await this.persistenceManager.whenReady();
116
128
  const result = await this.subscriptionManager.subscribe(query);
117
129
  this.realtimeHandler.watchDoctype(query.doctype);
@@ -138,12 +150,80 @@ class SyncModule {
138
150
  this.persistenceManager.broadcastMutation(mutation);
139
151
  this.emit();
140
152
  }
153
+ /** Refresh active query snapshots in place. Failures retain the last committed data. */
154
+ async refreshSubscriptions(options) {
155
+ const epoch = this.catchUpEpoch;
156
+ await this.persistenceManager.whenReady();
157
+ if (this.disposed || epoch !== this.catchUpEpoch) return [];
158
+ const results = await this.subscriptionManager.refreshSubscriptions(options);
159
+ if (!this.disposed && epoch === this.catchUpEpoch) this.emit();
160
+ return results;
161
+ }
162
+ getCatchUpState() {
163
+ return this.catchUpState;
164
+ }
165
+ publishCatchUp(state) {
166
+ this.catchUpState = Object.freeze(state);
167
+ for (const listener of this.storeListeners) listener();
168
+ }
169
+ /** Observes lifecycle/retry failures in state; explicit backfill still rejects. */
170
+ catchUp() {
171
+ if (this.disposed) return Promise.resolve(this.catchUpState);
172
+ if (this.catchUpRun) {
173
+ if (this.catchUpRun.attempt === 0) this.catchUpRun.trailing = true;
174
+ return this.catchUpRun.promise;
175
+ }
176
+ const epoch = this.catchUpEpoch;
177
+ const run = {
178
+ trailing: false,
179
+ attempt: 0,
180
+ promise: Promise.resolve(this.catchUpState)
181
+ };
182
+ this.catchUpRun = run;
183
+ run.promise = Promise.resolve().then(async () => {
184
+ let error = null;
185
+ const active = () => !this.disposed && this.catchUpEpoch === epoch;
186
+ do {
187
+ if (!active()) return this.catchUpState;
188
+ run.trailing = false;
189
+ error = null;
190
+ try {
191
+ if (this.options.catchUpStrategy === "snapshot") {
192
+ const results = await this.refreshSubscriptions();
193
+ const failures = results.filter(result => !result.ok && this.subscriptionManager.getSubscription(result.subscriptionId) && !this.subscriptionManager.isRestoredSubscription(result.subscriptionId));
194
+ if (failures.length) error = new AggregateError(failures.map(failure => failure.error), "Some subscriptions could not refresh. Showing previous data.");
195
+ } else {
196
+ await this.backfill({
197
+ scope: BackfillScope.All
198
+ });
199
+ }
200
+ } catch (caught) {
201
+ error = caught;
202
+ }
203
+ } while (active() && run.trailing && run.attempt++ === 0);
204
+ if (active()) {
205
+ this.catchUpRun = void 0;
206
+ this.publishCatchUp({
207
+ refreshing: false,
208
+ stale: error !== null,
209
+ error
210
+ });
211
+ }
212
+ return this.catchUpState;
213
+ });
214
+ this.publishCatchUp({
215
+ ...this.catchUpState,
216
+ refreshing: true
217
+ });
218
+ return run.promise;
219
+ }
141
220
  /**
142
221
  * Reconciles local state by fetching changes since stored cursors.
143
222
  */
144
223
  async backfill(args) {
224
+ const epoch = this.catchUpEpoch;
145
225
  await this.subscriptionManager.backfill(args);
146
- this.emit();
226
+ if (!this.disposed && epoch === this.catchUpEpoch) this.emit();
147
227
  }
148
228
  /**
149
229
  * Replays pending mutations with error handling.
@@ -287,6 +367,9 @@ class SyncModule {
287
367
  }
288
368
  /** Clears subscriptions, cache, journal, and temp id mappings. */
289
369
  resetCache() {
370
+ this.catchUpEpoch++;
371
+ this.catchUpRun = void 0;
372
+ this.catchUpState = idleCatchUpState;
290
373
  this.realtimeHandler.unwatchAll();
291
374
  this.subscriptionManager.clear();
292
375
  this.normalizedCache.clear();
@@ -296,6 +379,7 @@ class SyncModule {
296
379
  }
297
380
  /** Cleanup and dispose of resources */
298
381
  async dispose() {
382
+ this.disposed = true;
299
383
  this.storeListeners.clear();
300
384
  this.realtimeEventListeners.clear();
301
385
  this.resetCache();