@multiplatform.one/frappe 6.6.0 → 7.0.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.
- package/README.md +1 -1
- package/dist/cjs/auth.native.js.map +1 -1
- package/dist/cjs/call.native.js.map +1 -1
- package/dist/cjs/collection.native.js.map +1 -1
- package/dist/cjs/common/types.native.js.map +1 -1
- package/dist/cjs/core/http.cjs +45 -1
- package/dist/cjs/core/http.native.js +72 -1
- package/dist/cjs/core/http.native.js.map +1 -1
- package/dist/cjs/core/types.native.js.map +1 -1
- package/dist/cjs/core/wire.native.js.map +1 -1
- package/dist/cjs/db.native.js.map +1 -1
- package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/cjs/devtools/index.native.js.map +1 -1
- package/dist/cjs/devtools/plugin.native.js.map +1 -1
- package/dist/cjs/devtools/theme.native.js.map +1 -1
- package/dist/cjs/doctype.cjs +15 -2
- package/dist/cjs/doctype.native.js +22 -5
- package/dist/cjs/doctype.native.js.map +1 -1
- package/dist/cjs/file.native.js.map +1 -1
- package/dist/cjs/fixtureDb.native.js.map +1 -1
- package/dist/cjs/fixtures.native.js.map +1 -1
- package/dist/cjs/frappeApp.native.js.map +1 -1
- package/dist/cjs/frappeReact.cjs +55 -1
- package/dist/cjs/frappeReact.native.js +67 -2
- package/dist/cjs/frappeReact.native.js.map +1 -1
- package/dist/cjs/index.cjs +8 -0
- package/dist/cjs/index.native.js +10 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/optimistic.cjs +32 -2
- package/dist/cjs/optimistic.native.js +34 -1
- package/dist/cjs/optimistic.native.js.map +1 -1
- package/dist/cjs/pacer.native.js.map +1 -1
- package/dist/cjs/plugin/index.native.js.map +1 -1
- package/dist/cjs/realtime.cjs +234 -11
- package/dist/cjs/realtime.native.js +368 -18
- package/dist/cjs/realtime.native.js.map +1 -1
- package/dist/cjs/sync/backfill.native.js.map +1 -1
- package/dist/cjs/sync/filters.native.js.map +1 -1
- package/dist/cjs/sync/index.cjs +45 -1
- package/dist/cjs/sync/index.native.js +71 -1
- package/dist/cjs/sync/index.native.js.map +1 -1
- package/dist/cjs/sync/merge.native.js.map +1 -1
- package/dist/cjs/sync/mutationEngine.cjs +51 -15
- package/dist/cjs/sync/mutationEngine.native.js +69 -16
- package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
- package/dist/cjs/sync/mutationJournal.cjs +8 -0
- package/dist/cjs/sync/mutationJournal.native.js +10 -0
- package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
- package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
- package/dist/cjs/sync/persistence.native.js.map +1 -1
- package/dist/cjs/sync/realtime.native.js.map +1 -1
- package/dist/cjs/sync/rehydration.native.js.map +1 -1
- package/dist/cjs/sync/storage.native.js.map +1 -1
- package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
- package/dist/cjs/sync/types.native.js.map +1 -1
- package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
- package/dist/cjs/useLiveQuery.native.js.map +1 -1
- package/dist/cjs/util.native.js.map +1 -1
- package/dist/esm/auth.native.js.map +1 -1
- package/dist/esm/call.native.js.map +1 -1
- package/dist/esm/collection.native.js +1 -1
- package/dist/esm/collection.native.js.map +1 -1
- package/dist/esm/common/types.native.js.map +1 -1
- package/dist/esm/core/http.mjs +45 -2
- package/dist/esm/core/http.mjs.map +1 -1
- package/dist/esm/core/http.native.js +74 -4
- package/dist/esm/core/http.native.js.map +1 -1
- package/dist/esm/core/types.native.js.map +1 -1
- package/dist/esm/core/wire.native.js.map +1 -1
- package/dist/esm/db.native.js +1 -1
- package/dist/esm/db.native.js.map +1 -1
- package/dist/esm/devtools/FrappeDevtoolsPanel.native.js +2 -2
- package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
- package/dist/esm/devtools/index.native.js +2 -2
- package/dist/esm/devtools/index.native.js.map +1 -1
- package/dist/esm/devtools/plugin.native.js +1 -1
- package/dist/esm/devtools/plugin.native.js.map +1 -1
- package/dist/esm/devtools/theme.native.js.map +1 -1
- package/dist/esm/doctype.mjs +15 -2
- package/dist/esm/doctype.mjs.map +1 -1
- package/dist/esm/doctype.native.js +23 -6
- package/dist/esm/doctype.native.js.map +1 -1
- package/dist/esm/file.native.js.map +1 -1
- package/dist/esm/fixtureDb.native.js +1 -1
- package/dist/esm/fixtureDb.native.js.map +1 -1
- package/dist/esm/fixtures.native.js.map +1 -1
- package/dist/esm/frappeApp.native.js +7 -7
- package/dist/esm/frappeApp.native.js.map +1 -1
- package/dist/esm/frappeReact.mjs +55 -3
- package/dist/esm/frappeReact.mjs.map +1 -1
- package/dist/esm/frappeReact.native.js +73 -10
- package/dist/esm/frappeReact.native.js.map +1 -1
- package/dist/esm/index.mjs +5 -5
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +22 -22
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/optimistic.mjs +27 -1
- package/dist/esm/optimistic.mjs.map +1 -1
- package/dist/esm/optimistic.native.js +30 -1
- package/dist/esm/optimistic.native.js.map +1 -1
- package/dist/esm/pacer.mjs.map +1 -1
- package/dist/esm/pacer.native.js +4 -4
- package/dist/esm/pacer.native.js.map +1 -1
- package/dist/esm/plugin/index.native.js.map +1 -1
- package/dist/esm/realtime.mjs +234 -11
- package/dist/esm/realtime.mjs.map +1 -1
- package/dist/esm/realtime.native.js +369 -19
- package/dist/esm/realtime.native.js.map +1 -1
- package/dist/esm/sync/backfill.native.js +1 -1
- package/dist/esm/sync/backfill.native.js.map +1 -1
- package/dist/esm/sync/filters.native.js.map +1 -1
- package/dist/esm/sync/index.mjs +45 -1
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/index.native.js +79 -9
- package/dist/esm/sync/index.native.js.map +1 -1
- package/dist/esm/sync/merge.native.js.map +1 -1
- package/dist/esm/sync/mutationEngine.mjs +51 -15
- package/dist/esm/sync/mutationEngine.mjs.map +1 -1
- package/dist/esm/sync/mutationEngine.native.js +73 -20
- package/dist/esm/sync/mutationEngine.native.js.map +1 -1
- package/dist/esm/sync/mutationJournal.mjs +8 -0
- package/dist/esm/sync/mutationJournal.mjs.map +1 -1
- package/dist/esm/sync/mutationJournal.native.js +11 -1
- package/dist/esm/sync/mutationJournal.native.js.map +1 -1
- package/dist/esm/sync/normalizedCache.native.js.map +1 -1
- package/dist/esm/sync/persistence.native.js +2 -2
- package/dist/esm/sync/persistence.native.js.map +1 -1
- package/dist/esm/sync/realtime.native.js +1 -1
- package/dist/esm/sync/realtime.native.js.map +1 -1
- package/dist/esm/sync/rehydration.native.js +1 -1
- package/dist/esm/sync/rehydration.native.js.map +1 -1
- package/dist/esm/sync/storage.native.js.map +1 -1
- package/dist/esm/sync/subscriptionManager.native.js +4 -4
- package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
- package/dist/esm/sync/types.mjs.map +1 -1
- package/dist/esm/sync/types.native.js.map +1 -1
- package/dist/esm/sync/virtualPageManager.native.js +1 -1
- package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
- package/dist/esm/useLiveQuery.native.js.map +1 -1
- package/dist/esm/util.native.js.map +1 -1
- package/dist/jsx/core/http.mjs +45 -2
- package/dist/jsx/core/http.mjs.map +1 -1
- package/dist/jsx/core/http.native.js +72 -1
- package/dist/jsx/core/http.native.js.map +1 -1
- package/dist/jsx/doctype.mjs +15 -2
- package/dist/jsx/doctype.mjs.map +1 -1
- package/dist/jsx/doctype.native.js +22 -5
- package/dist/jsx/doctype.native.js.map +1 -1
- package/dist/jsx/frappeReact.mjs +55 -3
- package/dist/jsx/frappeReact.mjs.map +1 -1
- package/dist/jsx/frappeReact.native.js +66 -1
- package/dist/jsx/frappeReact.native.js.map +1 -1
- package/dist/jsx/index.js +5 -5
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +5 -5
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +8 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/optimistic.mjs +27 -1
- package/dist/jsx/optimistic.mjs.map +1 -1
- package/dist/jsx/optimistic.native.js +34 -1
- package/dist/jsx/optimistic.native.js.map +1 -1
- package/dist/jsx/pacer.mjs.map +1 -1
- package/dist/jsx/pacer.native.js.map +1 -1
- package/dist/jsx/realtime.mjs +234 -11
- package/dist/jsx/realtime.mjs.map +1 -1
- package/dist/jsx/realtime.native.js +368 -18
- package/dist/jsx/realtime.native.js.map +1 -1
- package/dist/jsx/sync/index.mjs +45 -1
- package/dist/jsx/sync/index.mjs.map +1 -1
- package/dist/jsx/sync/index.native.js +71 -1
- package/dist/jsx/sync/index.native.js.map +1 -1
- package/dist/jsx/sync/mutationEngine.mjs +51 -15
- package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
- package/dist/jsx/sync/mutationEngine.native.js +69 -16
- package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
- package/dist/jsx/sync/mutationJournal.mjs +8 -0
- package/dist/jsx/sync/mutationJournal.mjs.map +1 -1
- package/dist/jsx/sync/mutationJournal.native.js +10 -0
- package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
- package/dist/jsx/sync/types.mjs.map +1 -1
- package/dist/jsx/sync/types.native.js.map +1 -1
- package/package.json +8 -8
- package/src/core/http.spec.ts +81 -0
- package/src/core/http.ts +80 -3
- package/src/doctype.spec.ts +82 -3
- package/src/doctype.ts +51 -7
- package/src/frappeReact.ts +126 -4
- package/src/index.ts +28 -3
- package/src/optimistic.spec.ts +113 -2
- package/src/optimistic.ts +95 -0
- package/src/pacer.ts +8 -0
- package/src/realtime.spec.ts +62 -0
- package/src/realtime.ts +440 -14
- package/src/realtimeSse.spec.ts +547 -0
- package/src/sync/index.ts +44 -1
- package/src/sync/mutationEngine.spec.ts +7 -2
- package/src/sync/mutationEngine.ts +83 -27
- package/src/sync/mutationJournal.ts +9 -0
- package/src/sync/mutations.spec.ts +1 -1
- package/src/sync/syncModule.spec.ts +255 -1
- package/src/sync/types.ts +20 -0
- package/types/core/http.d.ts +11 -0
- package/types/core/http.d.ts.map +1 -1
- package/types/doctype.d.ts +7 -0
- package/types/doctype.d.ts.map +1 -1
- package/types/frappeReact.d.ts +50 -2
- package/types/frappeReact.d.ts.map +1 -1
- package/types/index.d.ts +8 -6
- package/types/index.d.ts.map +1 -1
- package/types/optimistic.d.ts +38 -0
- package/types/optimistic.d.ts.map +1 -1
- package/types/pacer.d.ts +8 -0
- package/types/pacer.d.ts.map +1 -1
- package/types/realtime.d.ts +183 -1
- package/types/realtime.d.ts.map +1 -1
- package/types/sync/index.d.ts +16 -1
- package/types/sync/index.d.ts.map +1 -1
- package/types/sync/mutationEngine.d.ts +7 -0
- package/types/sync/mutationEngine.d.ts.map +1 -1
- package/types/sync/mutationJournal.d.ts +6 -0
- package/types/sync/mutationJournal.d.ts.map +1 -1
- package/types/sync/types.d.ts +20 -0
- package/types/sync/types.d.ts.map +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { onAppFocus, onOnline } from "@multiplatform.one/platform";
|
|
2
|
-
import { MutationEngine } from "./mutationEngine";
|
|
3
|
-
import { MutationJournal } from "./mutationJournal";
|
|
4
|
-
import { NormalizedCache } from "./normalizedCache";
|
|
5
|
-
import { PersistenceManager } from "./persistence";
|
|
6
|
-
import { RealtimeHandler } from "./realtime";
|
|
7
|
-
import { RehydrationManager } from "./rehydration";
|
|
8
|
-
import { SubscriptionManager } from "./subscriptionManager";
|
|
9
|
-
import { BackfillScope, Status } from "./types";
|
|
2
|
+
import { MutationEngine } from "./mutationEngine.native.js";
|
|
3
|
+
import { MutationJournal } from "./mutationJournal.native.js";
|
|
4
|
+
import { NormalizedCache } from "./normalizedCache.native.js";
|
|
5
|
+
import { PersistenceManager } from "./persistence.native.js";
|
|
6
|
+
import { RealtimeHandler } from "./realtime.native.js";
|
|
7
|
+
import { RehydrationManager } from "./rehydration.native.js";
|
|
8
|
+
import { SubscriptionManager } from "./subscriptionManager.native.js";
|
|
9
|
+
import { BackfillScope, Status } from "./types.native.js";
|
|
10
10
|
function _class_call_check(instance, Constructor) {
|
|
11
11
|
if (!(instance instanceof Constructor)) {
|
|
12
12
|
throw new TypeError("Cannot call a class as a function");
|
|
@@ -78,7 +78,16 @@ var SyncModule = /* @__PURE__ */function () {
|
|
|
78
78
|
this.rehydrationManager = new RehydrationManager(this.db, this.normalizedCache, this.subscriptionManager, this.mutationJournal, function () {
|
|
79
79
|
return _this.emit();
|
|
80
80
|
});
|
|
81
|
-
this.mutationEngine = new MutationEngine(this.db, this.realtime, this.normalizedCache, this.mutationJournal, this.subscriptionManager, this.rehydrationManager,
|
|
81
|
+
this.mutationEngine = new MutationEngine(this.db, this.realtime, this.normalizedCache, this.mutationJournal, this.subscriptionManager, this.rehydrationManager, {
|
|
82
|
+
...this.options,
|
|
83
|
+
// Bridge engine-internal optimistic applies to store listeners so
|
|
84
|
+
// pending state paints BEFORE the server round trip. Without this,
|
|
85
|
+
// subscribeStore consumers only re-read after the ack (mutate()'s
|
|
86
|
+
// trailing emit) and the in-memory optimism was invisible to them.
|
|
87
|
+
onStoreChange: function onStoreChange() {
|
|
88
|
+
return _this.emit();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
82
91
|
var realtimeOptions = {
|
|
83
92
|
...this.options,
|
|
84
93
|
onResetCache: function onResetCache() {
|
|
@@ -224,6 +233,67 @@ var SyncModule = /* @__PURE__ */function () {
|
|
|
224
233
|
await this.mutationEngine.replayPending();
|
|
225
234
|
this.emit();
|
|
226
235
|
})
|
|
236
|
+
}, {
|
|
237
|
+
/**
|
|
238
|
+
* Public read of the mutation ledger: journal entries still awaiting the
|
|
239
|
+
* server (`Status.Pending`) or rejected by it (`Status.Failed`), ordered
|
|
240
|
+
* by submission sequence. Confirmed entries are dropped from the journal
|
|
241
|
+
* and never appear here. Read inside a `subscribeStore` callback for a
|
|
242
|
+
* reactive pending/error surface (see `useFrappePendingMutations`).
|
|
243
|
+
*/
|
|
244
|
+
key: "getMutationEntries",
|
|
245
|
+
value: function getMutationEntries(doctype) {
|
|
246
|
+
var entries = [];
|
|
247
|
+
var _iteratorNormalCompletion = true,
|
|
248
|
+
_didIteratorError = false,
|
|
249
|
+
_iteratorError = void 0;
|
|
250
|
+
try {
|
|
251
|
+
for (var _iterator = this.mutationJournal.listPending()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
252
|
+
var {
|
|
253
|
+
id,
|
|
254
|
+
entry
|
|
255
|
+
} = _step.value;
|
|
256
|
+
var _entry_createdAt, _entry_retryCount, _entry_error_message;
|
|
257
|
+
if (doctype && entry.doctype !== doctype) continue;
|
|
258
|
+
entries.push({
|
|
259
|
+
id,
|
|
260
|
+
operation: entry.operation,
|
|
261
|
+
doctype: entry.doctype,
|
|
262
|
+
docname: entry.docname,
|
|
263
|
+
status: entry.status,
|
|
264
|
+
createdAt: (_entry_createdAt = entry.createdAt) !== null && _entry_createdAt !== void 0 ? _entry_createdAt : 0,
|
|
265
|
+
retryCount: (_entry_retryCount = entry.retryCount) !== null && _entry_retryCount !== void 0 ? _entry_retryCount : 0,
|
|
266
|
+
error: entry.error ? (_entry_error_message = entry.error.message) !== null && _entry_error_message !== void 0 ? _entry_error_message : String(entry.error) : void 0
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
} catch (err) {
|
|
270
|
+
_didIteratorError = true;
|
|
271
|
+
_iteratorError = err;
|
|
272
|
+
} finally {
|
|
273
|
+
try {
|
|
274
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
275
|
+
_iterator.return();
|
|
276
|
+
}
|
|
277
|
+
} finally {
|
|
278
|
+
if (_didIteratorError) {
|
|
279
|
+
throw _iteratorError;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return entries;
|
|
284
|
+
}
|
|
285
|
+
}, {
|
|
286
|
+
/**
|
|
287
|
+
* Drops a failed (or still-pending) ledger entry without retrying it —
|
|
288
|
+
* the "dismiss" half of the rejected-write contract. The optimistic
|
|
289
|
+
* rollback already ran when the mutation failed; this only clears the
|
|
290
|
+
* error affordance.
|
|
291
|
+
*/
|
|
292
|
+
key: "dismissMutation",
|
|
293
|
+
value: function dismissMutation(id) {
|
|
294
|
+
this.mutationJournal.remove(id);
|
|
295
|
+
this.emit();
|
|
296
|
+
}
|
|
227
297
|
}, {
|
|
228
298
|
/** Reads a single document from the local cache. */
|
|
229
299
|
key: "getDocFromCache",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["onAppFocus","onOnline","MutationEngine","MutationJournal","NormalizedCache","PersistenceManager","RealtimeHandler","RehydrationManager","SubscriptionManager","BackfillScope","Status","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","SyncModule","SyncModule2","db","realtime","_this","options","arguments","Set","normalizedCache","maxSize","maxCacheSize","mutationJournal","ttl","mutationTTL","enableAutoCleanup","storage","localStorage","subscriptionManager","rehydrationManager","emit","mutationEngine","realtimeOptions","onResetCache","resetCache","onBackfillAll","backfill","scope","All","onStoreChange","onRealtimeEvent","event","_this_options_onRealtimeEvent","_this_options","call","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","realtimeEventListeners","Symbol","iterator","_step","next","done","listener","err","return","realtimeHandler","persistenceManager","setupWindowEvents","cleanupFocus","cleanupFocusReplay","listPending","replayPending","cleanupOnlineBackfill","cleanupOnlineReplay","cdcInterval","cdcIntervalHandle","setInterval","subscribe","query","whenReady","result","watchDoctype","doctype","refresh","then","unsubscribe","subscriptionId","subscription","getSubscription","unwatchDoctype","mutate","mutation","broadcastMutation","args","getDocFromCache","name","get","id","getDocsForSubscription","getPage","page","getNextBatch","cursorDocId","limit","getPageInfo","refetchDocs","docs","Docs","subscribeStore","storeListeners","add","delete","subscribeRealtimeEvents","getConnectionState","scheduleSave","broadcastChange","unwatchAll","clear","clearTemporaryMappings","dispose","_this_cleanupFocus","_this_cleanupFocusReplay","_this1","_this_cleanupOnlineBackfill","_this2","_this_cleanupOnlineReplay","_this3","destroy","clearInterval","__debug","allSubs","getAllSubscriptions","vpm","getVirtualPageManager","subscriptions","sub","_ref","_sub_tombstones","virtualSub","pageInfo","islands","getPageIslands","debugSub","docCount","docIds","tombstoneCount","tombstones","size","checkpoint","cursor","stale","restored","isRestoredSubscription","_pc_lastFetchedAt","pc","getProgressiveCache","progressiveCache","nextCursor","hasMore","totalCount","lastFetchedAt","toISOString","push","cacheStats","getStats","allEntries","getAllEntries","pending","confirmed","failed","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","entry","_entry_createdAt","_entry_retryCount","_entry_error_message","debugEntry","operation","docname","status","createdAt","retryCount","error","message","String","Pending","Confirmed","Failed","connection","socketConnected","getIsConnected","isLeader","getIsLeader","isOnline","navigator","onLine"],"sources":["index.native.js"],"sourcesContent":["import { onAppFocus, onOnline } from \"@multiplatform.one/platform\";\nimport { MutationEngine } from \"./mutationEngine\";\nimport { MutationJournal } from \"./mutationJournal\";\nimport { NormalizedCache } from \"./normalizedCache\";\nimport { PersistenceManager } from \"./persistence\";\nimport { RealtimeHandler } from \"./realtime\";\nimport { RehydrationManager } from \"./rehydration\";\nimport { SubscriptionManager } from \"./subscriptionManager\";\nimport { BackfillScope, Status } from \"./types\";\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar SyncModule = /* @__PURE__ */ (function() {\n \"use strict\";\n function SyncModule2(db, realtime) {\n var _this = this;\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n _class_call_check(this, SyncModule2);\n _define_property(this, \"normalizedCache\", void 0);\n _define_property(this, \"mutationJournal\", void 0);\n _define_property(this, \"storeListeners\", /* @__PURE__ */ new Set());\n _define_property(this, \"realtimeEventListeners\", /* @__PURE__ */ new Set());\n _define_property(this, \"subscriptionManager\", void 0);\n _define_property(this, \"mutationEngine\", void 0);\n _define_property(this, \"realtimeHandler\", void 0);\n _define_property(this, \"persistenceManager\", void 0);\n _define_property(this, \"rehydrationManager\", void 0);\n _define_property(this, \"cleanupFocus\", void 0);\n _define_property(this, \"cleanupFocusReplay\", void 0);\n _define_property(this, \"cleanupOnlineBackfill\", void 0);\n _define_property(this, \"cleanupOnlineReplay\", void 0);\n _define_property(this, \"cdcIntervalHandle\", void 0);\n _define_property(this, \"db\", void 0);\n _define_property(this, \"realtime\", void 0);\n _define_property(this, \"options\", void 0);\n this.db = db;\n this.realtime = realtime;\n this.options = options;\n this.normalizedCache = new NormalizedCache({\n maxSize: this.options.maxCacheSize\n });\n this.mutationJournal = new MutationJournal({\n ttl: this.options.mutationTTL,\n enableAutoCleanup: true,\n storage: typeof localStorage !== \"undefined\" ? localStorage : void 0\n });\n this.subscriptionManager = new SubscriptionManager(this.db, this.normalizedCache, this.options);\n this.rehydrationManager = new RehydrationManager(this.db, this.normalizedCache, this.subscriptionManager, this.mutationJournal, function() {\n return _this.emit();\n });\n this.mutationEngine = new MutationEngine(this.db, this.realtime, this.normalizedCache, this.mutationJournal, this.subscriptionManager, this.rehydrationManager, this.options);\n var realtimeOptions = {\n ...this.options,\n onResetCache: function onResetCache() {\n return _this.resetCache();\n },\n onBackfillAll: function onBackfillAll() {\n return _this.backfill({\n scope: BackfillScope.All\n });\n },\n // Realtime reconciliation mutates cache/membership outside the public\n // mutate/backfill entry points — bridge those changes to store listeners.\n onStoreChange: function onStoreChange() {\n return _this.emit();\n },\n onRealtimeEvent: function onRealtimeEvent(event) {\n var _this_options_onRealtimeEvent, _this_options;\n (_this_options_onRealtimeEvent = (_this_options = _this.options).onRealtimeEvent) === null || _this_options_onRealtimeEvent === void 0 ? void 0 : _this_options_onRealtimeEvent.call(_this_options, event);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = _this.realtimeEventListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var listener = _step.value;\n listener(event);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n };\n this.realtimeHandler = new RealtimeHandler(this.db, this.realtime, this.normalizedCache, this.subscriptionManager, this.rehydrationManager, realtimeOptions);\n this.persistenceManager = new PersistenceManager(this.normalizedCache, this.mutationJournal, this.subscriptionManager, this.mutationEngine, realtimeOptions);\n this.setupWindowEvents();\n }\n _create_class(SyncModule2, [\n {\n key: \"setupWindowEvents\",\n value: (\n /**\n * Sets up lifecycle event listeners for sync triggers.\n * Stores cleanup functions returned by each subscription.\n */\n function setupWindowEvents() {\n var _this = this;\n this.cleanupFocus = onAppFocus(function() {\n return _this.backfill({\n scope: BackfillScope.All\n });\n });\n this.cleanupFocusReplay = onAppFocus(function() {\n if (_this.mutationJournal.listPending().length > 0) void _this.replayPending();\n });\n this.cleanupOnlineBackfill = onOnline(function() {\n return _this.backfill({\n scope: BackfillScope.All\n });\n });\n this.cleanupOnlineReplay = onOnline(function() {\n return _this.replayPending();\n });\n if (this.options.cdcInterval && this.options.cdcInterval > 0) {\n this.cdcIntervalHandle = setInterval(function() {\n return _this.backfill({\n scope: BackfillScope.All\n });\n }, this.options.cdcInterval);\n }\n }\n )\n },\n {\n key: \"subscribe\",\n value: (\n /**\n * Creates a subscription, seeds cache with initial rows, and stores a backfill checkpoint.\n *\n * With persistence enabled, a query matching a subscription restored from\n * the snapshot is re-adopted cache-first: the returned rows come from the\n * restored cache and a background network refresh follows (`result.refresh`).\n * If that refresh fails (offline), the cached membership keeps serving and\n * the subscription is marked stale until the next successful backfill.\n */\n async function subscribe(query) {\n var _this = this;\n await this.persistenceManager.whenReady();\n var result = await this.subscriptionManager.subscribe(query);\n this.realtimeHandler.watchDoctype(query.doctype);\n this.emit();\n if (result.refresh) void result.refresh.then(function() {\n return _this.emit();\n });\n return result;\n }\n )\n },\n {\n /**\n * Removes a subscription by id.\n */\n key: \"unsubscribe\",\n value: function unsubscribe(subscriptionId) {\n var subscription = this.subscriptionManager.getSubscription(subscriptionId);\n this.subscriptionManager.unsubscribe(subscriptionId);\n if (subscription) this.realtimeHandler.unwatchDoctype(subscription.query.doctype);\n this.emit();\n }\n },\n {\n key: \"mutate\",\n value: async function mutate(mutation) {\n try {\n await this.mutationEngine.mutate(mutation);\n } catch (err) {\n this.emit();\n throw err;\n }\n this.persistenceManager.broadcastMutation(mutation);\n this.emit();\n }\n },\n {\n key: \"backfill\",\n value: (\n /**\n * Reconciles local state by fetching changes since stored cursors.\n */\n async function backfill(args) {\n await this.subscriptionManager.backfill(args);\n this.emit();\n }\n )\n },\n {\n key: \"replayPending\",\n value: (\n /**\n * Replays pending mutations with error handling.\n */\n async function replayPending() {\n await this.mutationEngine.replayPending();\n this.emit();\n }\n )\n },\n {\n /** Reads a single document from the local cache. */\n key: \"getDocFromCache\",\n value: function getDocFromCache(doctype, name) {\n return this.normalizedCache.get({\n doctype,\n name\n });\n }\n },\n {\n /** Returns subscription metadata by id. */\n key: \"getSubscription\",\n value: function getSubscription(id) {\n return this.subscriptionManager.getSubscription(id);\n }\n },\n {\n /**\n * Returns current rows for a subscription from the cache.\n */\n key: \"getDocsForSubscription\",\n value: function getDocsForSubscription(id) {\n return this.subscriptionManager.getDocsForSubscription(id);\n }\n },\n {\n key: \"getPage\",\n value: (\n /**\n * Get a specific page of documents using virtual pagination.\n * Requires the subscription to have been created with `progressive: true`.\n */\n async function getPage(subscriptionId, page) {\n var result = await this.subscriptionManager.getPage(subscriptionId, page);\n this.emit();\n return result;\n }\n )\n },\n {\n key: \"getNextBatch\",\n value: (\n /**\n * Get the next batch of documents after a cursor for infinite scroll.\n * Requires the subscription to have been created with `progressive: true`.\n */\n async function getNextBatch(subscriptionId, cursorDocId, limit) {\n var result = await this.subscriptionManager.getNextBatch(subscriptionId, cursorDocId, limit);\n this.emit();\n return result;\n }\n )\n },\n {\n /**\n * Get page information for a subscription.\n */\n key: \"getPageInfo\",\n value: function getPageInfo(subscriptionId) {\n return this.subscriptionManager.getPageInfo(subscriptionId);\n }\n },\n {\n key: \"refetchDocs\",\n value: (\n /** Refetches authoritative copies for specific documents and updates cache. */\n async function refetchDocs(docs) {\n await this.subscriptionManager.backfill({\n scope: BackfillScope.Docs,\n docs\n });\n this.emit();\n }\n )\n },\n {\n /** Adds a store listener; returns an unsubscribe function. */\n key: \"subscribeStore\",\n value: function subscribeStore(listener) {\n var _this = this;\n this.storeListeners.add(listener);\n return function() {\n _this.storeListeners.delete(listener);\n };\n }\n },\n {\n /**\n * Registers a listener for raw realtime events (doc_update, list_update,\n * doc_deleted, connected, …). Useful for consumers that manage their own\n * fetching (e.g. server-side paginated tables) but still want live\n * invalidation hints. Returns an unsubscribe function.\n */\n key: \"subscribeRealtimeEvents\",\n value: function subscribeRealtimeEvents(listener) {\n var _this = this;\n this.realtimeEventListeners.add(listener);\n return function() {\n _this.realtimeEventListeners.delete(listener);\n };\n }\n },\n {\n /**\n * Joins the realtime doctype room without creating a data subscription\n * (refcounted). Pair with `unwatchDoctype` on cleanup. Used by consumers\n * that fetch their own data but need the doctype's realtime hints.\n */\n key: \"watchDoctype\",\n value: function watchDoctype(doctype) {\n this.realtimeHandler.watchDoctype(doctype);\n }\n },\n {\n /** Releases one `watchDoctype` reference. */\n key: \"unwatchDoctype\",\n value: function unwatchDoctype(doctype) {\n this.realtimeHandler.unwatchDoctype(doctype);\n }\n },\n {\n /**\n * Live socket connection snapshot. `connected` is the state right now;\n * `everConnected` distinguishes \"reconnecting\" from \"realtime never up\"\n * (fixture mode, SSR, or no realtime module). Store listeners are\n * notified on every flip, so read this inside a `subscribeStore` callback\n * for a reactive indicator.\n */\n key: \"getConnectionState\",\n value: function getConnectionState() {\n return this.realtimeHandler.getConnectionState();\n }\n },\n {\n key: \"emit\",\n value: (\n /** Notifies listeners, schedules persistence, and broadcasts cross-tab changes. */\n function emit() {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.storeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var listener = _step.value;\n listener();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n this.persistenceManager.scheduleSave();\n this.persistenceManager.broadcastChange();\n }\n )\n },\n {\n /** Clears subscriptions, cache, journal, and temp id mappings. */\n key: \"resetCache\",\n value: function resetCache() {\n this.realtimeHandler.unwatchAll();\n this.subscriptionManager.clear();\n this.normalizedCache.clear();\n this.mutationJournal.clear();\n this.mutationEngine.clearTemporaryMappings();\n this.emit();\n }\n },\n {\n key: \"dispose\",\n value: (\n /** Cleanup and dispose of resources */\n async function dispose() {\n var _this_cleanupFocus, _this, _this_cleanupFocusReplay, _this1, _this_cleanupOnlineBackfill, _this2, _this_cleanupOnlineReplay, _this3;\n this.storeListeners.clear();\n this.realtimeEventListeners.clear();\n this.resetCache();\n this.mutationJournal.dispose();\n this.mutationEngine.dispose();\n this.realtimeHandler.dispose();\n this.persistenceManager.destroy();\n this.rehydrationManager.clear();\n (_this_cleanupFocus = (_this = this).cleanupFocus) === null || _this_cleanupFocus === void 0 ? void 0 : _this_cleanupFocus.call(_this);\n (_this_cleanupFocusReplay = (_this1 = this).cleanupFocusReplay) === null || _this_cleanupFocusReplay === void 0 ? void 0 : _this_cleanupFocusReplay.call(_this1);\n (_this_cleanupOnlineBackfill = (_this2 = this).cleanupOnlineBackfill) === null || _this_cleanupOnlineBackfill === void 0 ? void 0 : _this_cleanupOnlineBackfill.call(_this2);\n (_this_cleanupOnlineReplay = (_this3 = this).cleanupOnlineReplay) === null || _this_cleanupOnlineReplay === void 0 ? void 0 : _this_cleanupOnlineReplay.call(_this3);\n this.cleanupFocus = void 0;\n this.cleanupFocusReplay = void 0;\n this.cleanupOnlineBackfill = void 0;\n this.cleanupOnlineReplay = void 0;\n if (this.cdcIntervalHandle) {\n clearInterval(this.cdcIntervalHandle);\n this.cdcIntervalHandle = void 0;\n }\n }\n )\n },\n {\n /**\n * Returns a snapshot of internal state for devtools inspection.\n * Prefixed with __ to signal internal/debug use only.\n */\n key: \"__debug\",\n value: function __debug() {\n var allSubs = this.subscriptionManager.getAllSubscriptions();\n var vpm = this.subscriptionManager.getVirtualPageManager();\n var subscriptions = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = allSubs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [, sub] = _step.value;\n var _ref;\n var _sub_tombstones;\n var virtualSub = vpm.getSubscription(sub.id);\n var pageInfo = vpm.getPageInfo(sub.id);\n var islands = vpm.getPageIslands(sub.id);\n var debugSub = {\n id: sub.id,\n query: sub.query,\n docCount: sub.docIds.length,\n tombstoneCount: (_ref = (_sub_tombstones = sub.tombstones) === null || _sub_tombstones === void 0 ? void 0 : _sub_tombstones.size) !== null && _ref !== void 0 ? _ref : 0,\n checkpoint: sub.checkpoint,\n cursor: sub.cursor,\n stale: sub.stale,\n restored: this.subscriptionManager.isRestoredSubscription(sub.id),\n pageInfo\n };\n if (virtualSub) {\n var _pc_lastFetchedAt;\n var pc = virtualSub.getProgressiveCache();\n debugSub.progressiveCache = {\n docIds: pc.docIds,\n nextCursor: pc.nextCursor,\n hasMore: pc.hasMore,\n totalCount: pc.totalCount,\n lastFetchedAt: (_pc_lastFetchedAt = pc.lastFetchedAt) === null || _pc_lastFetchedAt === void 0 ? void 0 : _pc_lastFetchedAt.toISOString(),\n islands\n };\n }\n subscriptions.push(debugSub);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var cacheStats = this.normalizedCache.getStats();\n var allEntries = this.mutationJournal.getAllEntries();\n var pending = [];\n var confirmed = [];\n var failed = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = allEntries[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var { id, entry } = _step1.value;\n var _entry_createdAt, _entry_retryCount, _entry_error_message;\n var debugEntry = {\n id,\n operation: entry.operation,\n doctype: entry.doctype,\n docname: entry.docname,\n status: entry.status,\n createdAt: (_entry_createdAt = entry.createdAt) !== null && _entry_createdAt !== void 0 ? _entry_createdAt : 0,\n retryCount: (_entry_retryCount = entry.retryCount) !== null && _entry_retryCount !== void 0 ? _entry_retryCount : 0,\n error: entry.error ? (_entry_error_message = entry.error.message) !== null && _entry_error_message !== void 0 ? _entry_error_message : String(entry.error) : void 0\n };\n if (entry.status === Status.Pending) pending.push(debugEntry);\n else if (entry.status === Status.Confirmed) confirmed.push(debugEntry);\n else if (entry.status === Status.Failed) failed.push(debugEntry);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return {\n subscriptions,\n normalizedCache: cacheStats,\n mutationJournal: {\n pending,\n confirmed,\n failed\n },\n connection: {\n socketConnected: this.realtimeHandler.getIsConnected(),\n isLeader: this.persistenceManager.getIsLeader(),\n // React Native has navigator but no onLine (undefined) — treat\n // anything other than an explicit false as online.\n isOnline: typeof navigator === \"undefined\" || navigator.onLine !== false\n }\n };\n }\n },\n {\n /**\n * Checks if this tab is the leader for multi-tab coordination.\n */\n key: \"isLeader\",\n value: function isLeader() {\n return this.persistenceManager.getIsLeader();\n }\n }\n ]);\n return SyncModule2;\n})();\nexport {\n SyncModule\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["onAppFocus","onOnline","MutationEngine","MutationJournal","NormalizedCache","PersistenceManager","RealtimeHandler","RehydrationManager","SubscriptionManager","BackfillScope","Status","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","SyncModule","SyncModule2","db","realtime","_this","options","arguments","Set","normalizedCache","maxSize","maxCacheSize","mutationJournal","ttl","mutationTTL","enableAutoCleanup","storage","localStorage","subscriptionManager","rehydrationManager","emit","mutationEngine","onStoreChange","realtimeOptions","onResetCache","resetCache","onBackfillAll","backfill","scope","All","onRealtimeEvent","event","_this_options_onRealtimeEvent","_this_options","call","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","realtimeEventListeners","Symbol","iterator","_step","next","done","listener","err","return","realtimeHandler","persistenceManager","setupWindowEvents","cleanupFocus","cleanupFocusReplay","listPending","replayPending","cleanupOnlineBackfill","cleanupOnlineReplay","cdcInterval","cdcIntervalHandle","setInterval","subscribe","query","whenReady","result","watchDoctype","doctype","refresh","then","unsubscribe","subscriptionId","subscription","getSubscription","unwatchDoctype","mutate","mutation","broadcastMutation","args","getMutationEntries","entries","id","entry","_entry_createdAt","_entry_retryCount","_entry_error_message","push","operation","docname","status","createdAt","retryCount","error","message","String","dismissMutation","remove","getDocFromCache","name","get","getDocsForSubscription","getPage","page","getNextBatch","cursorDocId","limit","getPageInfo","refetchDocs","docs","Docs","subscribeStore","storeListeners","add","delete","subscribeRealtimeEvents"],"sources":["../../../src/sync/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_type_of","obj","Symbol","constructor","MergeStrategy","MergeStrategy2","FieldMergeStrategy","FieldMergeStrategy2","isObject","value","Array","isArray","isFrappeDoc","name","doctype","getFieldMergeStrategy","fieldName","config","_config_doctypes_doctype_fields","_config_doctypes_doctype","_config_doctypes","_config_doctypes_doctype1","_config_doctypes1","fieldStrategy","doctypes","fields","doctypeDefault","defaultStrategy","applyMergeStrategy","base","client","server","strategy","hasConflict","TypeError","baseNum","clientNum","serverNum","clientDelta","serverDelta","baseNum1","clientNum1","serverNum1","Math","max","baseNum2","clientNum2","serverNum2","min","baseArray","baseSet","Set","clientSet","serverSet","result","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","item","has","add","err","return","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","item1","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","item2","delete","from","mergeFieldValue","options","arguments","length","isChildTable","isChildTableArray","mergeChildTable","merge","merged","conflicts","allKeys","Object","keys","forEach","key2","key","baseValue","clientValue","serverValue","clientChanged","deepEqual","serverChanged","baseObject","objectMergeResult","mergeObject","hasConflicts","push","clientArray","serverArray","rowsByName","Map","row","isChildTableRow","set","get","row1","existingRow","assign","sortChildTableByIdx","result1","baseRowsByName","clientRowsByName","serverRowsByName","row2","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","row3","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","row4","allRowNames","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_iterator5","_step5","rowName","baseRow","clientRow","serverRow","clientDeleted","serverDeleted","clientAdded","serverAdded","childDoctype","childDoctype1","merged1","hasIndexField","some","idx","sort","a","b","indexA","Number","MAX_SAFE_INTEGER","indexB","valueA","valueB","every","index","keysA","keysB","parent","parentfield","parenttype","_len","values","_key","validRows","filter","floor","Boolean","validArrays","arr2","hasChildTableEvidence","hasNonChildTableEvidence","arr","validRows1","stripNullsFromChildRow","cleaned","entries"],"sources":["merge.native.js"],"sourcesContent":["function _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar MergeStrategy = /* @__PURE__ */ (function(MergeStrategy2) {\n MergeStrategy2[\"ClientWins\"] = \"client-wins\";\n MergeStrategy2[\"ServerWins\"] = \"server-wins\";\n return MergeStrategy2;\n})({});\nvar FieldMergeStrategy = /* @__PURE__ */ (function(FieldMergeStrategy2) {\n FieldMergeStrategy2[\"ClientWins\"] = \"client-wins\";\n FieldMergeStrategy2[\"ServerWins\"] = \"server-wins\";\n FieldMergeStrategy2[\"Sum\"] = \"sum\";\n FieldMergeStrategy2[\"Max\"] = \"max\";\n FieldMergeStrategy2[\"Min\"] = \"min\";\n FieldMergeStrategy2[\"UnionSet\"] = \"union-set\";\n return FieldMergeStrategy2;\n})({});\nfunction isObject(value) {\n return (typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction isFrappeDoc(value) {\n return (typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\" && value !== null && \"name\" in value && \"doctype\" in value && typeof value.name === \"string\" && typeof value.doctype === \"string\";\n}\nfunction getFieldMergeStrategy(fieldName, config, doctype) {\n var _config_doctypes_doctype_fields, _config_doctypes_doctype, _config_doctypes, _config_doctypes_doctype1, _config_doctypes1;\n if (!config) return \"server-wins\";\n var fieldStrategy = doctype ? (_config_doctypes = config.doctypes) === null || _config_doctypes === void 0 ? void 0 : (_config_doctypes_doctype = _config_doctypes[doctype]) === null || _config_doctypes_doctype === void 0 ? void 0 : (_config_doctypes_doctype_fields = _config_doctypes_doctype.fields) === null || _config_doctypes_doctype_fields === void 0 ? void 0 : _config_doctypes_doctype_fields[fieldName] : void 0;\n if (fieldStrategy) return fieldStrategy;\n var doctypeDefault = doctype ? (_config_doctypes1 = config.doctypes) === null || _config_doctypes1 === void 0 ? void 0 : (_config_doctypes_doctype1 = _config_doctypes1[doctype]) === null || _config_doctypes_doctype1 === void 0 ? void 0 : _config_doctypes_doctype1.defaultStrategy : void 0;\n if (doctypeDefault) {\n return doctypeDefault === \"client-wins\" ? \"client-wins\" : \"server-wins\";\n }\n return config.defaultStrategy === \"client-wins\" ? \"client-wins\" : \"server-wins\";\n}\nfunction applyMergeStrategy(fieldName, base, client, server, strategy) {\n if (typeof strategy === \"function\") {\n return {\n value: strategy(base, client, server),\n hasConflict: false\n };\n }\n switch (strategy) {\n case \"client-wins\":\n return {\n value: client,\n hasConflict: false\n };\n case \"server-wins\":\n return {\n value: server,\n hasConflict: false\n };\n case \"sum\": {\n if (typeof base !== \"number\" && base !== null && base !== void 0 || typeof client !== \"number\" && client !== null && client !== void 0 || typeof server !== \"number\" && server !== null && server !== void 0) {\n throw new TypeError(`merge strategy sum requires numeric values for field ${fieldName}`);\n }\n var baseNum = typeof base === \"number\" ? base : 0;\n var clientNum = typeof client === \"number\" ? client : 0;\n var serverNum = typeof server === \"number\" ? server : 0;\n var clientDelta = clientNum - baseNum;\n var serverDelta = serverNum - baseNum;\n return {\n value: baseNum + clientDelta + serverDelta,\n hasConflict: false\n };\n }\n case \"max\": {\n if (typeof base !== \"number\" && base !== null && base !== void 0 || typeof client !== \"number\" && client !== null && client !== void 0 || typeof server !== \"number\" && server !== null && server !== void 0) {\n throw new TypeError(`merge strategy max requires numeric values for field ${fieldName}`);\n }\n var baseNum1 = typeof base === \"number\" ? base : 0;\n var clientNum1 = typeof client === \"number\" ? client : 0;\n var serverNum1 = typeof server === \"number\" ? server : 0;\n return {\n value: Math.max(baseNum1, clientNum1, serverNum1),\n hasConflict: false\n };\n }\n case \"min\": {\n if (typeof base !== \"number\" && base !== null && base !== void 0 || typeof client !== \"number\" && client !== null && client !== void 0 || typeof server !== \"number\" && server !== null && server !== void 0) {\n throw new TypeError(`merge strategy min requires numeric values for field ${fieldName}`);\n }\n var baseNum2 = typeof base === \"number\" ? base : 0;\n var clientNum2 = typeof client === \"number\" ? client : 0;\n var serverNum2 = typeof server === \"number\" ? server : 0;\n return {\n value: Math.min(baseNum2, clientNum2, serverNum2),\n hasConflict: false\n };\n }\n case \"union-set\": {\n if (!Array.isArray(base) && base !== null && base !== void 0 || !Array.isArray(client) && client !== null && client !== void 0 || !Array.isArray(server) && server !== null && server !== void 0) {\n throw new TypeError(`merge strategy union requires array values for field ${fieldName}`);\n }\n var baseArray = Array.isArray(base) ? base : [];\n var baseSet = new Set(baseArray);\n var clientSet = new Set(Array.isArray(client) ? client : []);\n var serverSet = new Set(Array.isArray(server) ? server : []);\n var result = new Set(baseArray);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = clientSet[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n if (!baseSet.has(item)) {\n result.add(item);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = serverSet[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var item1 = _step1.value;\n if (!baseSet.has(item1)) {\n result.add(item1);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = baseArray[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var item2 = _step2.value;\n if (!clientSet.has(item2) && !serverSet.has(item2)) {\n result.delete(item2);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n return {\n value: Array.from(result),\n hasConflict: false\n };\n }\n default:\n return {\n value: server,\n hasConflict: true\n };\n }\n}\nfunction mergeFieldValue(base, client) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (client === null || client === void 0) {\n return client;\n }\n if (Array.isArray(client)) {\n var baseArray = Array.isArray(base) ? base : [];\n if (options.isChildTable || isChildTableArray(baseArray, client)) {\n return mergeChildTable(baseArray, client);\n }\n return client;\n }\n if ((typeof client === \"undefined\" ? \"undefined\" : _type_of(client)) === \"object\" && client !== null) {\n return {\n ...(typeof base === \"undefined\" ? \"undefined\" : _type_of(base)) === \"object\" && base !== null && !Array.isArray(base) ? base : {},\n ...client\n };\n }\n return client;\n}\nfunction merge(base, client, server, config, doctype) {\n doctype = doctype || server.doctype || client.doctype || (base === null || base === void 0 ? void 0 : base.doctype);\n var merged = {};\n var conflicts = [];\n var allKeys = /* @__PURE__ */ new Set();\n if (base) Object.keys(base).forEach(function(key2) {\n return allKeys.add(key2);\n });\n Object.keys(client).forEach(function(key2) {\n return allKeys.add(key2);\n });\n Object.keys(server).forEach(function(key2) {\n return allKeys.add(key2);\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = allKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var baseValue = base === null || base === void 0 ? void 0 : base[key];\n var clientValue = client[key];\n var serverValue = server[key];\n var clientChanged = !deepEqual(baseValue, clientValue);\n var serverChanged = !deepEqual(baseValue, serverValue);\n if (!clientChanged && !serverChanged) {\n merged[key] = baseValue;\n } else if (clientChanged && !serverChanged) {\n merged[key] = mergeFieldValue(baseValue, clientValue);\n } else if (!clientChanged && serverChanged) {\n merged[key] = mergeFieldValue(baseValue, serverValue);\n } else {\n if (deepEqual(clientValue, serverValue)) {\n merged[key] = serverValue;\n } else {\n if (isChildTableArray(baseValue, clientValue, serverValue)) {\n merged[key] = mergeChildTable(Array.isArray(baseValue) ? baseValue : [], Array.isArray(clientValue) ? clientValue : [], Array.isArray(serverValue) ? serverValue : [], config);\n } else if (isObject(clientValue) && isObject(serverValue)) {\n var baseObject = isObject(baseValue) ? baseValue : {};\n var objectMergeResult = mergeObject(baseObject, clientValue, serverValue, config, doctype);\n merged[key] = objectMergeResult.merged;\n if (objectMergeResult.hasConflicts) {\n conflicts.push(key);\n }\n } else {\n var strategy = getFieldMergeStrategy(key, config, doctype);\n var result = applyMergeStrategy(key, baseValue, clientValue, serverValue, strategy);\n merged[key] = result.value;\n if (result.hasConflict || !config || !doctype) {\n conflicts.push(key);\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n merged,\n conflicts,\n hasConflicts: conflicts.length > 0\n };\n}\nfunction mergeObject(base, client, server, config, doctype) {\n var merged = {};\n var allKeys = /* @__PURE__ */ new Set([\n ...Object.keys(base),\n ...Object.keys(client),\n ...Object.keys(server)\n ]);\n var hasConflicts = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = allKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var baseValue = base[key];\n var clientValue = client[key];\n var serverValue = server[key];\n var clientChanged = !deepEqual(baseValue, clientValue);\n var serverChanged = !deepEqual(baseValue, serverValue);\n if (!clientChanged && !serverChanged) {\n merged[key] = baseValue;\n } else if (clientChanged && !serverChanged) {\n merged[key] = clientValue;\n } else if (!clientChanged && serverChanged) {\n merged[key] = serverValue;\n } else if (deepEqual(clientValue, serverValue)) {\n merged[key] = serverValue;\n } else {\n var strategy = getFieldMergeStrategy(key, config, doctype);\n var result = applyMergeStrategy(key, baseValue, clientValue, serverValue, strategy);\n merged[key] = result.value;\n if (result.hasConflict) hasConflicts = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n merged,\n hasConflicts\n };\n}\nfunction mergeChildTable(baseArray, clientArray, serverArray, config) {\n var isChildTable = isChildTableArray(baseArray, clientArray, serverArray);\n if (!isChildTable) return serverArray !== null && serverArray !== void 0 ? serverArray : clientArray;\n if (!serverArray) {\n var rowsByName = /* @__PURE__ */ new Map();\n var result = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = baseArray[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n if (isChildTableRow(row)) {\n rowsByName.set(row.name, {\n ...row\n });\n result.push(rowsByName.get(row.name));\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = clientArray[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var row1 = _step1.value;\n if (isChildTableRow(row1)) {\n var existingRow = rowsByName.get(row1.name);\n if (existingRow && isObject(existingRow)) {\n Object.assign(existingRow, row1);\n } else {\n rowsByName.set(row1.name, {\n ...row1\n });\n result.push(rowsByName.get(row1.name));\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return sortChildTableByIdx(result);\n }\n var result1 = [];\n var baseRowsByName = /* @__PURE__ */ new Map();\n var clientRowsByName = /* @__PURE__ */ new Map();\n var serverRowsByName = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = baseArray[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var row2 = _step2.value;\n if (isChildTableRow(row2)) baseRowsByName.set(row2.name, row2);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = clientArray[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var row3 = _step3.value;\n if (isChildTableRow(row3)) clientRowsByName.set(row3.name, row3);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = serverArray[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var row4 = _step4.value;\n if (isChildTableRow(row4)) serverRowsByName.set(row4.name, row4);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var allRowNames = /* @__PURE__ */ new Set([\n ...baseRowsByName.keys(),\n ...clientRowsByName.keys(),\n ...serverRowsByName.keys()\n ]);\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = allRowNames[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var rowName = _step5.value;\n var baseRow = baseRowsByName.get(rowName);\n var clientRow = clientRowsByName.get(rowName);\n var serverRow = serverRowsByName.get(rowName);\n var clientDeleted = baseRow && !clientRow;\n var serverDeleted = baseRow && !serverRow;\n var clientAdded = !baseRow && clientRow;\n var serverAdded = !baseRow && serverRow;\n if (clientDeleted && serverDeleted || clientDeleted && !serverDeleted || !clientDeleted && serverDeleted) {\n continue;\n }\n if (clientAdded && !serverAdded) {\n if (clientRow && isObject(clientRow)) {\n result1.push({\n ...clientRow\n });\n }\n } else if (!clientAdded && serverAdded) {\n if (serverRow && isObject(serverRow)) {\n result1.push({\n ...serverRow\n });\n }\n } else if (clientAdded && serverAdded) {\n if (isFrappeDoc(clientRow) && isFrappeDoc(serverRow)) {\n var childDoctype = serverRow.doctype || clientRow.doctype;\n if (childDoctype) {\n var merged = merge(void 0, clientRow, serverRow, config, childDoctype);\n result1.push(merged.merged);\n }\n }\n } else if (baseRow && clientRow && serverRow) {\n if (isFrappeDoc(baseRow) && isFrappeDoc(clientRow) && isFrappeDoc(serverRow)) {\n var childDoctype1 = serverRow.doctype || clientRow.doctype || baseRow.doctype;\n if (childDoctype1) {\n var merged1 = merge(baseRow, clientRow, serverRow, config, childDoctype1);\n result1.push(merged1.merged);\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n return sortChildTableByIdx(result1);\n}\nfunction sortChildTableByIdx(value) {\n var hasIndexField = value.some(function(row) {\n return isChildTableRow(row) && row.idx !== null && typeof row.idx === \"number\";\n });\n if (hasIndexField) {\n value.sort(function(a, b) {\n var indexA = isChildTableRow(a) && typeof a.idx === \"number\" ? a.idx : Number.MAX_SAFE_INTEGER;\n var indexB = isChildTableRow(b) && typeof b.idx === \"number\" ? b.idx : Number.MAX_SAFE_INTEGER;\n return indexA - indexB;\n });\n }\n return value;\n}\nfunction deepEqual(valueA, valueB) {\n if (valueA === valueB) return true;\n if (valueA == null || valueB == null) return valueA === valueB;\n if ((typeof valueA === \"undefined\" ? \"undefined\" : _type_of(valueA)) !== (typeof valueB === \"undefined\" ? \"undefined\" : _type_of(valueB))) return false;\n if (Array.isArray(valueA) && Array.isArray(valueB)) {\n if (valueA.length !== valueB.length) return false;\n return valueA.every(function(value, index) {\n return deepEqual(value, valueB[index]);\n });\n }\n if (isObject(valueA) && isObject(valueB)) {\n var keysA = Object.keys(valueA);\n var keysB = Object.keys(valueB);\n if (keysA.length !== keysB.length) return false;\n return keysA.every(function(key) {\n return deepEqual(valueA[key], valueB[key]);\n });\n }\n return false;\n}\nfunction isChildTableRow(value) {\n if ((typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) !== \"object\" || value === null) return false;\n var row = value;\n if (typeof row.name !== \"string\") return false;\n if (!(\"idx\" in row) || row.idx !== null && typeof row.idx !== \"number\") {\n return false;\n }\n if (!(\"parent\" in row) || row.parent !== null && typeof row.parent !== \"string\") {\n return false;\n }\n if (!(\"parentfield\" in row) || row.parentfield !== null && typeof row.parentfield !== \"string\") {\n return false;\n }\n if (!(\"parenttype\" in row) || row.parenttype !== null && typeof row.parenttype !== \"string\") {\n return false;\n }\n if (\"doctype\" in row && row.doctype !== null && typeof row.doctype !== \"string\") {\n return false;\n }\n return true;\n}\nfunction isChildTableArray() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n if (values.length === 1) {\n var value = values[0];\n if (!Array.isArray(value)) return false;\n if (value.length === 0) return null;\n var validRows = value.filter(function(row) {\n return row !== null && row !== void 0;\n });\n if (validRows.length === 0) return null;\n return [\n validRows[0],\n validRows[validRows.length - 1],\n validRows[Math.floor(validRows.length / 2)]\n ].filter(Boolean).every(function(row) {\n return isChildTableRow(row);\n });\n }\n var validArrays = values.filter(function(arr2) {\n return Array.isArray(arr2);\n });\n if (validArrays.length === 0) return false;\n var hasChildTableEvidence = false;\n var hasNonChildTableEvidence = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = validArrays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arr = _step.value;\n if (!Array.isArray(arr)) return false;\n if (arr.length === 0) continue;\n var validRows1 = arr.filter(function(row) {\n return row !== null && row !== void 0;\n });\n if (validRows1.length === 0) continue;\n if ([\n validRows1[0],\n validRows1.length >= 2 ? validRows1[validRows1.length - 1] : null,\n validRows1.length >= 3 ? validRows1[Math.floor(validRows1.length / 2)] : null\n ].filter(Boolean).every(function(row) {\n return isChildTableRow(row);\n })) {\n hasChildTableEvidence = true;\n } else {\n hasNonChildTableEvidence = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return hasChildTableEvidence && !hasNonChildTableEvidence;\n}\nfunction stripNullsFromChildRow(row) {\n var cleaned = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(row)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key, value] = _step.value;\n if (value !== null) {\n cleaned[key] = value;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return cleaned;\n}\nexport {\n FieldMergeStrategy,\n MergeStrategy,\n applyMergeStrategy,\n deepEqual,\n getFieldMergeStrategy,\n isChildTableArray,\n isChildTableRow,\n isObject,\n merge,\n mergeChildTable,\n mergeFieldValue,\n stripNullsFromChildRow\n};\n//# sourceMappingURL=merge.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_type_of","obj","Symbol","constructor","MergeStrategy","MergeStrategy2","FieldMergeStrategy","FieldMergeStrategy2","isObject","value","Array","isArray","isFrappeDoc","name","doctype","getFieldMergeStrategy","fieldName","config","_config_doctypes_doctype_fields","_config_doctypes_doctype","_config_doctypes","_config_doctypes_doctype1","_config_doctypes1","fieldStrategy","doctypes","fields","doctypeDefault","defaultStrategy","applyMergeStrategy","base","client","server","strategy","hasConflict","TypeError","baseNum","clientNum","serverNum","clientDelta","serverDelta","baseNum1","clientNum1","serverNum1","Math","max","baseNum2","clientNum2","serverNum2","min","baseArray","baseSet","Set","clientSet","serverSet","result","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","item","has","add","err","return","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","item1","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","item2","delete","from","mergeFieldValue","options","arguments","length","isChildTable","isChildTableArray","mergeChildTable","merge","merged","conflicts","allKeys","Object","keys","forEach","key2","key","baseValue","clientValue","serverValue","clientChanged","deepEqual","serverChanged","baseObject","objectMergeResult","mergeObject","hasConflicts","push","clientArray","serverArray","rowsByName","Map","row","isChildTableRow","set","get","row1","existingRow","assign","sortChildTableByIdx","result1","baseRowsByName","clientRowsByName","serverRowsByName","row2"],"sources":["../../../src/sync/merge.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,15 @@ import { matchesFilters } from "./filters.mjs";
|
|
|
3
3
|
import { merge, MergeStrategy } from "./merge.mjs";
|
|
4
4
|
import { Order } from "./types.mjs";
|
|
5
5
|
import { Operation, PendingRehydrationType, PlacementType, RehydrationReason, Status } from "./types.mjs";
|
|
6
|
+
function toJournalError(err) {
|
|
7
|
+
if (err instanceof Error) return {
|
|
8
|
+
message: err.message
|
|
9
|
+
};
|
|
10
|
+
const message = err?.message;
|
|
11
|
+
return {
|
|
12
|
+
message: message ?? String(err)
|
|
13
|
+
};
|
|
14
|
+
}
|
|
6
15
|
class MutationEngine {
|
|
7
16
|
temporaryIdToRealNameMap = /* @__PURE__ */new Map();
|
|
8
17
|
globalOptimisticDocIds = /* @__PURE__ */new Map();
|
|
@@ -103,7 +112,7 @@ class MutationEngine {
|
|
|
103
112
|
resolve(result.data);
|
|
104
113
|
} else {
|
|
105
114
|
const error = new Error(result.error || "Batch mutation failed");
|
|
106
|
-
this.mutationJournal.fail(mutation.mutationId);
|
|
115
|
+
this.mutationJournal.fail(mutation.mutationId, toJournalError(error));
|
|
107
116
|
reject(error);
|
|
108
117
|
}
|
|
109
118
|
}
|
|
@@ -112,7 +121,7 @@ class MutationEngine {
|
|
|
112
121
|
mutation,
|
|
113
122
|
reject
|
|
114
123
|
} of batch) {
|
|
115
|
-
this.mutationJournal.fail(mutation.mutationId);
|
|
124
|
+
this.mutationJournal.fail(mutation.mutationId, toJournalError(err));
|
|
116
125
|
reject(err);
|
|
117
126
|
}
|
|
118
127
|
}
|
|
@@ -147,9 +156,11 @@ class MutationEngine {
|
|
|
147
156
|
}
|
|
148
157
|
if (mutation.operation === Operation.Update && doc.name) {
|
|
149
158
|
await this.handleOptimisticUpdate(mutation, cachedDoc);
|
|
159
|
+
this.options.onStoreChange?.();
|
|
150
160
|
}
|
|
151
161
|
if (mutation.operation === Operation.Create) {
|
|
152
162
|
await this.handleOptimisticCreate(mutation);
|
|
163
|
+
this.options.onStoreChange?.();
|
|
153
164
|
}
|
|
154
165
|
if (version === void 0 && doc.name && (mutation.operation === Operation.Update || mutation.operation === Operation.Delete) && !cachedDoc) {
|
|
155
166
|
try {
|
|
@@ -184,7 +195,11 @@ class MutationEngine {
|
|
|
184
195
|
status: Status.Pending,
|
|
185
196
|
snapshot: doc.name ? cachedDoc : void 0
|
|
186
197
|
});
|
|
187
|
-
if (
|
|
198
|
+
if (mutation.operation === Operation.Delete && doc.name) {
|
|
199
|
+
this.applyOptimisticDelete(doc.doctype, doc.name);
|
|
200
|
+
this.options.onStoreChange?.();
|
|
201
|
+
}
|
|
202
|
+
if (this.options.enableBatching && !mutation.execute) {
|
|
188
203
|
try {
|
|
189
204
|
await this.queueForBatch(mutation);
|
|
190
205
|
if (mutation.operation === Operation.Create) {
|
|
@@ -289,7 +304,7 @@ class MutationEngine {
|
|
|
289
304
|
}
|
|
290
305
|
}
|
|
291
306
|
async handleServerCreate(mutation) {
|
|
292
|
-
const created = await this.db.createDoc({
|
|
307
|
+
const created = mutation.execute ? await mutation.execute() : await this.db.createDoc({
|
|
293
308
|
...mutation.doc,
|
|
294
309
|
client_mutation_id: mutation.mutationId
|
|
295
310
|
});
|
|
@@ -312,18 +327,39 @@ class MutationEngine {
|
|
|
312
327
|
}
|
|
313
328
|
}
|
|
314
329
|
async handleServerUpdate(mutation, _version) {
|
|
330
|
+
if (mutation.execute) {
|
|
331
|
+
const updated = await mutation.execute();
|
|
332
|
+
if (updated?.name) {
|
|
333
|
+
this.normalizedCache.upsert({
|
|
334
|
+
...updated,
|
|
335
|
+
doctype: updated.doctype || mutation.doc.doctype
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
315
340
|
await this.db.updateDoc(mutation.doc);
|
|
316
341
|
}
|
|
317
|
-
|
|
342
|
+
/**
|
|
343
|
+
* Applies the local side of a delete: cache eviction, subscription
|
|
344
|
+
* membership removal, and gap-filling rehydration. Runs before the server
|
|
345
|
+
* call (mutate() body) so the row disappears immediately; the journal
|
|
346
|
+
* snapshot restores it if the server rejects.
|
|
347
|
+
*/
|
|
348
|
+
applyOptimisticDelete(doctype, name) {
|
|
349
|
+
const affected = [...this.subscriptionManager.getAllSubscriptions().values()].filter(subscription => subscription.query.doctype === doctype && subscription.docIds.includes(name));
|
|
318
350
|
this.normalizedCache.remove({
|
|
319
|
-
doctype
|
|
320
|
-
name
|
|
351
|
+
doctype,
|
|
352
|
+
name
|
|
321
353
|
});
|
|
322
|
-
this.subscriptionManager.removeFromAllSubscriptions(
|
|
323
|
-
for (const subscription of
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
354
|
+
this.subscriptionManager.removeFromAllSubscriptions(doctype, name);
|
|
355
|
+
for (const subscription of affected) {
|
|
356
|
+
this.rehydrationManager.scheduleRehydration(subscription, RehydrationReason.Delete);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
async handleServerDelete(mutation, _version) {
|
|
360
|
+
if (mutation.execute) {
|
|
361
|
+
await mutation.execute();
|
|
362
|
+
return;
|
|
327
363
|
}
|
|
328
364
|
await this.db.deleteDoc(mutation.doc);
|
|
329
365
|
}
|
|
@@ -365,7 +401,7 @@ class MutationEngine {
|
|
|
365
401
|
mutation,
|
|
366
402
|
err
|
|
367
403
|
});
|
|
368
|
-
this.mutationJournal.fail(mutation.mutationId);
|
|
404
|
+
this.mutationJournal.fail(mutation.mutationId, toJournalError(err));
|
|
369
405
|
const entry = this.mutationJournal.get(mutation.mutationId);
|
|
370
406
|
const isOffline = typeof navigator !== "undefined" && navigator.onLine === false;
|
|
371
407
|
if (!isOffline) {
|
|
@@ -663,10 +699,10 @@ class MutationEngine {
|
|
|
663
699
|
});
|
|
664
700
|
}
|
|
665
701
|
} else if (errorClass === "auth") {} else if (errorClass === "permanent") {
|
|
666
|
-
this.mutationJournal.fail(id);
|
|
702
|
+
this.mutationJournal.fail(id, toJournalError(err));
|
|
667
703
|
this.notifyMutationError(id, entry, err);
|
|
668
704
|
} else if (errorClass === "failed") {
|
|
669
|
-
this.mutationJournal.fail(id);
|
|
705
|
+
this.mutationJournal.fail(id, toJournalError(err));
|
|
670
706
|
this.notifyMutationError(id, entry, err);
|
|
671
707
|
}
|
|
672
708
|
}
|