@multiplatform.one/frappe 6.4.2 → 6.6.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 (194) hide show
  1. package/dist/cjs/auth.native.js.map +1 -1
  2. package/dist/cjs/call.native.js.map +1 -1
  3. package/dist/cjs/collection.cjs +25 -9
  4. package/dist/cjs/collection.native.js +25 -9
  5. package/dist/cjs/collection.native.js.map +1 -1
  6. package/dist/cjs/common/types.native.js.map +1 -1
  7. package/dist/cjs/core/http.native.js.map +1 -1
  8. package/dist/cjs/core/types.native.js.map +1 -1
  9. package/dist/cjs/core/wire.native.js.map +1 -1
  10. package/dist/cjs/db.cjs +13 -2
  11. package/dist/cjs/db.native.js +18 -2
  12. package/dist/cjs/db.native.js.map +1 -1
  13. package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  14. package/dist/cjs/devtools/index.native.js.map +1 -1
  15. package/dist/cjs/devtools/plugin.native.js.map +1 -1
  16. package/dist/cjs/devtools/theme.native.js.map +1 -1
  17. package/dist/cjs/doctype.native.js.map +1 -1
  18. package/dist/cjs/file.native.js.map +1 -1
  19. package/dist/cjs/fixtureDb.native.js.map +1 -1
  20. package/dist/cjs/fixtures.native.js.map +1 -1
  21. package/dist/cjs/frappeApp.native.js.map +1 -1
  22. package/dist/cjs/frappeReact.cjs +10 -3
  23. package/dist/cjs/frappeReact.native.js +11 -4
  24. package/dist/cjs/frappeReact.native.js.map +1 -1
  25. package/dist/cjs/index.native.js +2 -2
  26. package/dist/cjs/index.native.js.map +1 -1
  27. package/dist/cjs/optimistic.native.js.map +1 -1
  28. package/dist/cjs/pacer.native.js.map +1 -1
  29. package/dist/cjs/plugin/index.native.js.map +1 -1
  30. package/dist/cjs/realtime.native.js.map +1 -1
  31. package/dist/cjs/sync/backfill.native.js.map +1 -1
  32. package/dist/cjs/sync/filters.native.js.map +1 -1
  33. package/dist/cjs/sync/index.cjs +6 -1
  34. package/dist/cjs/sync/index.native.js +6 -1
  35. package/dist/cjs/sync/index.native.js.map +1 -1
  36. package/dist/cjs/sync/merge.native.js.map +1 -1
  37. package/dist/cjs/sync/mutationEngine.cjs +43 -19
  38. package/dist/cjs/sync/mutationEngine.native.js +51 -21
  39. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  40. package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
  41. package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
  42. package/dist/cjs/sync/persistence.native.js.map +1 -1
  43. package/dist/cjs/sync/realtime.native.js.map +1 -1
  44. package/dist/cjs/sync/rehydration.native.js.map +1 -1
  45. package/dist/cjs/sync/storage.native.js.map +1 -1
  46. package/dist/cjs/sync/subscriptionManager.cjs +4 -0
  47. package/dist/cjs/sync/subscriptionManager.native.js +4 -0
  48. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  49. package/dist/cjs/sync/types.native.js.map +1 -1
  50. package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
  51. package/dist/cjs/useLiveQuery.native.js.map +1 -1
  52. package/dist/cjs/util.native.js.map +1 -1
  53. package/dist/esm/auth.native.js.map +1 -1
  54. package/dist/esm/call.native.js.map +1 -1
  55. package/dist/esm/collection.mjs +24 -9
  56. package/dist/esm/collection.mjs.map +1 -1
  57. package/dist/esm/collection.native.js +25 -10
  58. package/dist/esm/collection.native.js.map +1 -1
  59. package/dist/esm/common/types.native.js.map +1 -1
  60. package/dist/esm/core/http.mjs.map +1 -1
  61. package/dist/esm/core/http.native.js +2 -2
  62. package/dist/esm/core/http.native.js.map +1 -1
  63. package/dist/esm/core/types.mjs.map +1 -1
  64. package/dist/esm/core/types.native.js.map +1 -1
  65. package/dist/esm/core/wire.native.js.map +1 -1
  66. package/dist/esm/db.mjs +13 -2
  67. package/dist/esm/db.mjs.map +1 -1
  68. package/dist/esm/db.native.js +19 -3
  69. package/dist/esm/db.native.js.map +1 -1
  70. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js +2 -2
  71. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  72. package/dist/esm/devtools/index.native.js +2 -2
  73. package/dist/esm/devtools/index.native.js.map +1 -1
  74. package/dist/esm/devtools/plugin.native.js +1 -1
  75. package/dist/esm/devtools/plugin.native.js.map +1 -1
  76. package/dist/esm/devtools/theme.native.js.map +1 -1
  77. package/dist/esm/doctype.native.js +1 -1
  78. package/dist/esm/doctype.native.js.map +1 -1
  79. package/dist/esm/file.native.js.map +1 -1
  80. package/dist/esm/fixtureDb.native.js +1 -1
  81. package/dist/esm/fixtureDb.native.js.map +1 -1
  82. package/dist/esm/fixtures.native.js.map +1 -1
  83. package/dist/esm/frappeApp.native.js +7 -7
  84. package/dist/esm/frappeApp.native.js.map +1 -1
  85. package/dist/esm/frappeReact.mjs +11 -4
  86. package/dist/esm/frappeReact.mjs.map +1 -1
  87. package/dist/esm/frappeReact.native.js +17 -10
  88. package/dist/esm/frappeReact.native.js.map +1 -1
  89. package/dist/esm/index.native.js +21 -21
  90. package/dist/esm/index.native.js.map +1 -1
  91. package/dist/esm/optimistic.native.js.map +1 -1
  92. package/dist/esm/pacer.native.js +4 -4
  93. package/dist/esm/pacer.native.js.map +1 -1
  94. package/dist/esm/plugin/index.mjs.map +1 -1
  95. package/dist/esm/plugin/index.native.js.map +1 -1
  96. package/dist/esm/realtime.mjs.map +1 -1
  97. package/dist/esm/realtime.native.js +1 -1
  98. package/dist/esm/realtime.native.js.map +1 -1
  99. package/dist/esm/sync/backfill.mjs.map +1 -1
  100. package/dist/esm/sync/backfill.native.js +1 -1
  101. package/dist/esm/sync/backfill.native.js.map +1 -1
  102. package/dist/esm/sync/filters.mjs.map +1 -1
  103. package/dist/esm/sync/filters.native.js.map +1 -1
  104. package/dist/esm/sync/index.mjs +6 -1
  105. package/dist/esm/sync/index.mjs.map +1 -1
  106. package/dist/esm/sync/index.native.js +14 -9
  107. package/dist/esm/sync/index.native.js.map +1 -1
  108. package/dist/esm/sync/merge.mjs.map +1 -1
  109. package/dist/esm/sync/merge.native.js.map +1 -1
  110. package/dist/esm/sync/mutationEngine.mjs +43 -19
  111. package/dist/esm/sync/mutationEngine.mjs.map +1 -1
  112. package/dist/esm/sync/mutationEngine.native.js +55 -25
  113. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  114. package/dist/esm/sync/mutationJournal.native.js +1 -1
  115. package/dist/esm/sync/mutationJournal.native.js.map +1 -1
  116. package/dist/esm/sync/normalizedCache.native.js.map +1 -1
  117. package/dist/esm/sync/persistence.native.js +2 -2
  118. package/dist/esm/sync/persistence.native.js.map +1 -1
  119. package/dist/esm/sync/realtime.native.js +1 -1
  120. package/dist/esm/sync/realtime.native.js.map +1 -1
  121. package/dist/esm/sync/rehydration.native.js +1 -1
  122. package/dist/esm/sync/rehydration.native.js.map +1 -1
  123. package/dist/esm/sync/storage.native.js.map +1 -1
  124. package/dist/esm/sync/subscriptionManager.mjs +4 -0
  125. package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
  126. package/dist/esm/sync/subscriptionManager.native.js +8 -4
  127. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  128. package/dist/esm/sync/types.mjs.map +1 -1
  129. package/dist/esm/sync/types.native.js.map +1 -1
  130. package/dist/esm/sync/virtualPageManager.mjs.map +1 -1
  131. package/dist/esm/sync/virtualPageManager.native.js +1 -1
  132. package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
  133. package/dist/esm/useLiveQuery.native.js.map +1 -1
  134. package/dist/esm/util.native.js.map +1 -1
  135. package/dist/jsx/collection.mjs +24 -9
  136. package/dist/jsx/collection.mjs.map +1 -1
  137. package/dist/jsx/collection.native.js +25 -9
  138. package/dist/jsx/collection.native.js.map +1 -1
  139. package/dist/jsx/core/http.mjs.map +1 -1
  140. package/dist/jsx/core/types.mjs.map +1 -1
  141. package/dist/jsx/db.mjs +13 -2
  142. package/dist/jsx/db.mjs.map +1 -1
  143. package/dist/jsx/db.native.js +18 -2
  144. package/dist/jsx/db.native.js.map +1 -1
  145. package/dist/jsx/frappeReact.mjs +11 -4
  146. package/dist/jsx/frappeReact.mjs.map +1 -1
  147. package/dist/jsx/frappeReact.native.js +10 -3
  148. package/dist/jsx/frappeReact.native.js.map +1 -1
  149. package/dist/jsx/plugin/index.mjs.map +1 -1
  150. package/dist/jsx/realtime.mjs.map +1 -1
  151. package/dist/jsx/realtime.native.js.map +1 -1
  152. package/dist/jsx/sync/backfill.mjs.map +1 -1
  153. package/dist/jsx/sync/filters.mjs.map +1 -1
  154. package/dist/jsx/sync/filters.native.js.map +1 -1
  155. package/dist/jsx/sync/index.mjs +6 -1
  156. package/dist/jsx/sync/index.mjs.map +1 -1
  157. package/dist/jsx/sync/index.native.js +6 -1
  158. package/dist/jsx/sync/index.native.js.map +1 -1
  159. package/dist/jsx/sync/merge.mjs.map +1 -1
  160. package/dist/jsx/sync/merge.native.js.map +1 -1
  161. package/dist/jsx/sync/mutationEngine.mjs +43 -19
  162. package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
  163. package/dist/jsx/sync/mutationEngine.native.js +51 -21
  164. package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
  165. package/dist/jsx/sync/subscriptionManager.mjs +4 -0
  166. package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
  167. package/dist/jsx/sync/subscriptionManager.native.js +4 -0
  168. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  169. package/dist/jsx/sync/types.mjs.map +1 -1
  170. package/dist/jsx/sync/types.native.js.map +1 -1
  171. package/dist/jsx/sync/virtualPageManager.mjs.map +1 -1
  172. package/package.json +6 -6
  173. package/src/collection.ts +53 -8
  174. package/src/db.spec.ts +70 -0
  175. package/src/db.ts +28 -2
  176. package/src/frappeReact.spec.ts +7 -1
  177. package/src/frappeReact.ts +30 -6
  178. package/src/frappeReactLiveQueryGc.spec.ts +44 -4
  179. package/src/sync/index.ts +10 -1
  180. package/src/sync/mutationEngine.ts +81 -20
  181. package/src/sync/optimisticCreateReconcile.spec.ts +372 -0
  182. package/src/sync/subscriptionManager.spec.ts +41 -0
  183. package/src/sync/subscriptionManager.ts +10 -0
  184. package/src/sync/subscriptions.spec.ts +4 -0
  185. package/src/sync/types.ts +9 -0
  186. package/types/collection.d.ts +12 -0
  187. package/types/collection.d.ts.map +1 -1
  188. package/types/db.d.ts.map +1 -1
  189. package/types/frappeReact.d.ts.map +1 -1
  190. package/types/sync/index.d.ts.map +1 -1
  191. package/types/sync/mutationEngine.d.ts.map +1 -1
  192. package/types/sync/subscriptionManager.d.ts.map +1 -1
  193. package/types/sync/types.d.ts +9 -0
  194. package/types/sync/types.d.ts.map +1 -1
@@ -114,9 +114,14 @@ class MutationEngine {
114
114
  this.mutationJournal.confirm(mutation.mutationId);
115
115
  if (result.data) {
116
116
  this.normalizedCache.upsert(result.data);
117
- if (mutation.operation === import_types2.Operation.Create && mutation.doc.name !== result.data.name) {
118
- this.temporaryIdToRealNameMap.set(mutation.doc.name, result.data.name);
119
- this.rehydrationManager.registerTempIdMapping(mutation.doc.name, result.data.name);
117
+ if (mutation.operation === import_types2.Operation.Create) {
118
+ const temporaryName = mutation.temporaryName ?? mutation.doc.name;
119
+ if (temporaryName && result.data.name && temporaryName !== result.data.name) {
120
+ this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, result.data.name);
121
+ this.rehydrationManager.registerTempIdMapping(temporaryName, result.data.name);
122
+ } else if (temporaryName) {
123
+ this.globalOptimisticDocIds.get(mutation.doc.doctype)?.delete(temporaryName);
124
+ }
120
125
  }
121
126
  }
122
127
  if (this.options.onMutationSuccess) {
@@ -196,7 +201,10 @@ class MutationEngine {
196
201
  const values = mutation.operation === import_types2.Operation.Delete ? void 0 : mutation.operation === import_types2.Operation.Create ? mutation.doc : mutation.doc;
197
202
  this.mutationJournal.add(mutation.mutationId, {
198
203
  doctype: doc.doctype,
199
- docname: doc.name,
204
+ // Creates journal the optimistic identity (consumer placeholder or
205
+ // engine-generated temp id) so page refreshes keep the pending row
206
+ // and rollback can evict it even when doc.name was never set.
207
+ docname: mutation.operation === import_types2.Operation.Create ? mutation.temporaryName ?? doc.name : doc.name,
200
208
  values,
201
209
  operation: mutation.operation,
202
210
  version,
@@ -263,6 +271,7 @@ class MutationEngine {
263
271
  }
264
272
  async handleOptimisticCreate(mutation) {
265
273
  const temporaryName = mutation.doc.name || `tmp_${cryptoRandomId()}`;
274
+ mutation.temporaryName = temporaryName;
266
275
  const optimisticDoc = {
267
276
  ...mutation.doc,
268
277
  name: temporaryName
@@ -307,9 +316,18 @@ class MutationEngine {
307
316
  }
308
317
  }
309
318
  async handleServerCreate(mutation) {
310
- const created = await this.db.createDoc(mutation.doc);
319
+ const created = await this.db.createDoc({
320
+ ...mutation.doc,
321
+ client_mutation_id: mutation.mutationId
322
+ });
311
323
  const realName = created?.name;
312
- const temporaryName = mutation.doc.name;
324
+ const temporaryName = mutation.temporaryName ?? mutation.doc.name;
325
+ if (realName) {
326
+ this.normalizedCache.upsert({
327
+ ...created,
328
+ doctype: created.doctype || mutation.doc.doctype
329
+ });
330
+ }
313
331
  if (realName && temporaryName && realName !== temporaryName) {
314
332
  this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, realName);
315
333
  this.rehydrationManager.registerTempIdMapping(temporaryName, realName);
@@ -319,9 +337,6 @@ class MutationEngine {
319
337
  globalDocs.delete(temporaryName);
320
338
  }
321
339
  }
322
- if (!this.realtime?.isHealthy()) {
323
- this.normalizedCache.upsert(created);
324
- }
325
340
  }
326
341
  async handleServerUpdate(mutation, _version) {
327
342
  await this.db.updateDoc(mutation.doc);
@@ -347,7 +362,8 @@ class MutationEngine {
347
362
  }
348
363
  for (const subscription of this.subscriptionManager.getAllSubscriptions().values()) {
349
364
  if (subscription.query.doctype !== doctype) continue;
350
- subscription.docIds = subscription.docIds.map(x => x === temporaryName ? realName : x);
365
+ if (!subscription.docIds.includes(temporaryName)) continue;
366
+ subscription.docIds = subscription.docIds.includes(realName) ? subscription.docIds.filter(id => id !== temporaryName) : subscription.docIds.map(id => id === temporaryName ? realName : id);
351
367
  }
352
368
  this.normalizedCache.remove({
353
369
  doctype,
@@ -359,7 +375,7 @@ class MutationEngine {
359
375
  const docname = mutation.doc.name;
360
376
  const doctype = mutation.doc.doctype;
361
377
  const realName = docname && this.temporaryIdToRealNameMap.get(docname) || docname;
362
- if (realName && mutation.operation !== import_types2.Operation.Delete) {
378
+ if (realName && mutation.operation === import_types2.Operation.Update) {
363
379
  targets.push({
364
380
  doctype,
365
381
  name: realName
@@ -398,12 +414,6 @@ class MutationEngine {
398
414
  switch (mutation.operation) {
399
415
  case import_types2.Operation.Create:
400
416
  await this.handleFailedCreate(mutation);
401
- if (docname) {
402
- this.normalizedCache.remove({
403
- doctype,
404
- name: docname
405
- });
406
- }
407
417
  break;
408
418
  case import_types2.Operation.Update:
409
419
  if (entry?.snapshot && docname) {
@@ -431,7 +441,7 @@ class MutationEngine {
431
441
  }
432
442
  }
433
443
  async handleFailedCreate(mutation) {
434
- const temporaryName = mutation.doc.name;
444
+ const temporaryName = mutation.operation === import_types2.Operation.Create ? mutation.temporaryName ?? mutation.doc.name : mutation.doc.name;
435
445
  const doctype = mutation.doc.doctype;
436
446
  if (temporaryName) {
437
447
  const globalDocs = this.globalOptimisticDocIds.get(doctype);
@@ -442,6 +452,10 @@ class MutationEngine {
442
452
  if (subscription.query.doctype !== doctype) continue;
443
453
  subscription.docIds = subscription.docIds.filter(id => id !== temporaryName);
444
454
  }
455
+ this.normalizedCache.remove({
456
+ doctype,
457
+ name: temporaryName
458
+ });
445
459
  }
446
460
  }
447
461
  async handleConflict(mutation, entry) {
@@ -633,12 +647,22 @@ class MutationEngine {
633
647
  }
634
648
  try {
635
649
  if (entry.operation === import_types2.Operation.Create) {
636
- await this.db.createDoc({
650
+ const created = await this.db.createDoc({
637
651
  ...entry.values,
638
652
  client_mutation_id: id,
639
653
  doctype: entry.doctype,
640
654
  name: entry.docname || cryptoRandomId()
641
655
  });
656
+ if (created?.name) {
657
+ this.normalizedCache.upsert({
658
+ ...created,
659
+ doctype: created.doctype || entry.doctype
660
+ });
661
+ if (entry.docname && created.name !== entry.docname) {
662
+ this.handleTemporaryToRealMapping(entry.doctype, entry.docname, created.name);
663
+ this.rehydrationManager.registerTempIdMapping(entry.docname, created.name);
664
+ }
665
+ }
642
666
  } else if (entry.operation === import_types2.Operation.Update && entry.docname) {
643
667
  await this.db.updateDoc({
644
668
  ...entry.values,
@@ -164,9 +164,16 @@ var MutationEngine = /* @__PURE__ */function () {
164
164
  this.mutationJournal.confirm(mutation.mutationId);
165
165
  if (result.data) {
166
166
  this.normalizedCache.upsert(result.data);
167
- if (mutation.operation === import_types2.Operation.Create && mutation.doc.name !== result.data.name) {
168
- this.temporaryIdToRealNameMap.set(mutation.doc.name, result.data.name);
169
- this.rehydrationManager.registerTempIdMapping(mutation.doc.name, result.data.name);
167
+ if (mutation.operation === import_types2.Operation.Create) {
168
+ var _mutation_temporaryName;
169
+ var temporaryName = (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name;
170
+ if (temporaryName && result.data.name && temporaryName !== result.data.name) {
171
+ this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, result.data.name);
172
+ this.rehydrationManager.registerTempIdMapping(temporaryName, result.data.name);
173
+ } else if (temporaryName) {
174
+ var _this_globalOptimisticDocIds_get;
175
+ (_this_globalOptimisticDocIds_get = this.globalOptimisticDocIds.get(mutation.doc.doctype)) === null || _this_globalOptimisticDocIds_get === void 0 ? void 0 : _this_globalOptimisticDocIds_get.delete(temporaryName);
176
+ }
170
177
  }
171
178
  }
172
179
  if (this.options.onMutationSuccess) {
@@ -221,6 +228,7 @@ var MutationEngine = /* @__PURE__ */function () {
221
228
  }, {
222
229
  key: "mutate",
223
230
  value: async function mutate(mutation) {
231
+ var _mutation_temporaryName;
224
232
  if (this.options.onMutationStart) this.options.onMutationStart(mutation);
225
233
  var {
226
234
  doc
@@ -272,7 +280,10 @@ var MutationEngine = /* @__PURE__ */function () {
272
280
  var values = mutation.operation === import_types2.Operation.Delete ? void 0 : mutation.operation === import_types2.Operation.Create ? mutation.doc : mutation.doc;
273
281
  this.mutationJournal.add(mutation.mutationId, {
274
282
  doctype: doc.doctype,
275
- docname: doc.name,
283
+ // Creates journal the optimistic identity (consumer placeholder or
284
+ // engine-generated temp id) so page refreshes keep the pending row
285
+ // and rollback can evict it even when doc.name was never set.
286
+ docname: mutation.operation === import_types2.Operation.Create ? (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : doc.name : doc.name,
276
287
  values,
277
288
  operation: mutation.operation,
278
289
  version,
@@ -382,6 +393,7 @@ var MutationEngine = /* @__PURE__ */function () {
382
393
  key: "handleOptimisticCreate",
383
394
  value: async function handleOptimisticCreate(mutation) {
384
395
  var temporaryName = mutation.doc.name || `tmp_${cryptoRandomId()}`;
396
+ mutation.temporaryName = temporaryName;
385
397
  var optimisticDoc = {
386
398
  ...mutation.doc,
387
399
  name: temporaryName
@@ -447,10 +459,19 @@ var MutationEngine = /* @__PURE__ */function () {
447
459
  }, {
448
460
  key: "handleServerCreate",
449
461
  value: async function handleServerCreate(mutation) {
450
- var _this_realtime;
451
- var created = await this.db.createDoc(mutation.doc);
462
+ var _mutation_temporaryName;
463
+ var created = await this.db.createDoc({
464
+ ...mutation.doc,
465
+ client_mutation_id: mutation.mutationId
466
+ });
452
467
  var realName = created === null || created === void 0 ? void 0 : created.name;
453
- var temporaryName = mutation.doc.name;
468
+ var temporaryName = (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name;
469
+ if (realName) {
470
+ this.normalizedCache.upsert({
471
+ ...created,
472
+ doctype: created.doctype || mutation.doc.doctype
473
+ });
474
+ }
454
475
  if (realName && temporaryName && realName !== temporaryName) {
455
476
  this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, realName);
456
477
  this.rehydrationManager.registerTempIdMapping(temporaryName, realName);
@@ -460,9 +481,6 @@ var MutationEngine = /* @__PURE__ */function () {
460
481
  globalDocs.delete(temporaryName);
461
482
  }
462
483
  }
463
- if (!((_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.isHealthy())) {
464
- this.normalizedCache.upsert(created);
465
- }
466
484
  }
467
485
  }, {
468
486
  key: "handleServerUpdate",
@@ -518,8 +536,11 @@ var MutationEngine = /* @__PURE__ */function () {
518
536
  for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
519
537
  var subscription = _step.value;
520
538
  if (subscription.query.doctype !== doctype) continue;
521
- subscription.docIds = subscription.docIds.map(function (x) {
522
- return x === temporaryName ? realName : x;
539
+ if (!subscription.docIds.includes(temporaryName)) continue;
540
+ subscription.docIds = subscription.docIds.includes(realName) ? subscription.docIds.filter(function (id) {
541
+ return id !== temporaryName;
542
+ }) : subscription.docIds.map(function (id) {
543
+ return id === temporaryName ? realName : id;
523
544
  });
524
545
  }
525
546
  } catch (err) {
@@ -549,7 +570,7 @@ var MutationEngine = /* @__PURE__ */function () {
549
570
  var docname = mutation.doc.name;
550
571
  var doctype = mutation.doc.doctype;
551
572
  var realName = docname && this.temporaryIdToRealNameMap.get(docname) || docname;
552
- if (realName && mutation.operation !== import_types2.Operation.Delete) {
573
+ if (realName && mutation.operation === import_types2.Operation.Update) {
553
574
  targets.push({
554
575
  doctype,
555
576
  name: realName
@@ -612,12 +633,6 @@ var MutationEngine = /* @__PURE__ */function () {
612
633
  switch (mutation.operation) {
613
634
  case import_types2.Operation.Create:
614
635
  await this.handleFailedCreate(mutation);
615
- if (docname) {
616
- this.normalizedCache.remove({
617
- doctype,
618
- name: docname
619
- });
620
- }
621
636
  break;
622
637
  case import_types2.Operation.Update:
623
638
  if ((entry === null || entry === void 0 ? void 0 : entry.snapshot) && docname) {
@@ -666,7 +681,8 @@ var MutationEngine = /* @__PURE__ */function () {
666
681
  }, {
667
682
  key: "handleFailedCreate",
668
683
  value: async function handleFailedCreate(mutation) {
669
- var temporaryName = mutation.doc.name;
684
+ var _mutation_temporaryName;
685
+ var temporaryName = mutation.operation === import_types2.Operation.Create ? (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name : mutation.doc.name;
670
686
  var doctype = mutation.doc.doctype;
671
687
  if (temporaryName) {
672
688
  var globalDocs = this.globalOptimisticDocIds.get(doctype);
@@ -698,6 +714,10 @@ var MutationEngine = /* @__PURE__ */function () {
698
714
  }
699
715
  }
700
716
  }
717
+ this.normalizedCache.remove({
718
+ doctype,
719
+ name: temporaryName
720
+ });
701
721
  }
702
722
  }
703
723
  }, {
@@ -949,12 +969,22 @@ var MutationEngine = /* @__PURE__ */function () {
949
969
  }
950
970
  try {
951
971
  if (entry.operation === import_types2.Operation.Create) {
952
- await _this.db.createDoc({
972
+ var created = await _this.db.createDoc({
953
973
  ...entry.values,
954
974
  client_mutation_id: id,
955
975
  doctype: entry.doctype,
956
976
  name: entry.docname || cryptoRandomId()
957
977
  });
978
+ if (created === null || created === void 0 ? void 0 : created.name) {
979
+ _this.normalizedCache.upsert({
980
+ ...created,
981
+ doctype: created.doctype || entry.doctype
982
+ });
983
+ if (entry.docname && created.name !== entry.docname) {
984
+ _this.handleTemporaryToRealMapping(entry.doctype, entry.docname, created.name);
985
+ _this.rehydrationManager.registerTempIdMapping(entry.docname, created.name);
986
+ }
987
+ }
958
988
  } else if (entry.operation === import_types2.Operation.Update && entry.docname) {
959
989
  await _this.db.updateDoc({
960
990
  ...entry.values,
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mutationEngine_exports","__export","MutationEngine","module","exports","import_pacer","require","import_filters","import_merge","import_types","import_types2","_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","MutationEngine2","db","realtime","normalizedCache","mutationJournal","subscriptionManager","rehydrationManager","_this","options","arguments","_options_batchDelay","Map","batchDelay","batchDebouncer","Debouncer","flushBatch","wait","queueForBatch","mutation","Promise","resolve","reject","_this_options_batchMaxSize","pendingBatch","push","maxSize","batchMaxSize","maybeExecute","batch","_this_options_batchAtomic","batchMutations","map","param","mutation2","operationMap","Operation","Create","Update","Delete","type","operation","doctype","doc","name","data","results","mutations","atomic","batchAtomic","result","success","confirm","mutationId","upsert","temporaryIdToRealNameMap","set","registerTempIdMapping","onMutationSuccess","error","Error","fail","err","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","mutation1","reject1","err2","return","forceBatchFlush","cancel","mutate","onMutationStart","version","cachedDoc","get","_this_options_versionFields","versionField","versionFields","cachedVersion","handleOptimisticUpdate","handleOptimisticCreate","_this_options_versionFields1","getDoc","versionField1","cachedVersion1","onTrace","event","details","values","add","docname","status","Status","Pending","snapshot","enableBatching","getAllSubscriptions","subscription","query","scheduleRehydration","RehydrationReason","handleMutationError","_this_realtime","handleServerCreate","handleServerUpdate","handleServerDelete","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","subscription1","isHealthy","refetchAffectedDocs","onOptimisticApply","updateSubscriptionMembership","temporaryName","cryptoRandomId","optimisticDoc","globalOptimisticDocIds","has","Set","globalDocIds","matches","matchesFilters","filters","orderBy","limit","docIds","placement","determineOptimisticPlacement","PlacementType","Before","metadata","itemsBeforePage","After","itemsAfterPage","Unknown","pendingRehydration","PendingRehydrationType","FullRefresh","Uncertain","Within","includes","insertDocumentIntoSubscription","created","createDoc","realName","handleTemporaryToRealMapping","globalDocs","delete","_version","updateDoc","remove","removeFromAllSubscriptions","deleteDoc","x","_mutation_affected","targets","affected","fresh","onMutationError","entry","isOffline","navigator","onLine","rollbackOptimisticState","errorWithStatus","handleConflict","handleFailedCreate","replace","restoredDoc","filter","id","latest","base","clientPartial","fullClient","mergeConfig","buildMergeConfig","nonOverlap","merge","hasConflicts","merged","newId","client_mutation_id","base_modified","refreshed"],"sources":["../../../src/sync/mutationEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","mutationEngine_exports","MutationEngine","module","exports","import_pacer","require","import_filters","import_merge","import_types","import_types2","_class_call_check","instance","Constructor","TypeError","_defineProperties","props","i","length","descriptor","configurable","writable","_create_class","protoProps","staticProps","_define_property","obj","MutationEngine2","db","realtime","normalizedCache","mutationJournal","subscriptionManager","rehydrationManager","_this","options","arguments","_options_batchDelay","Map","batchDelay","batchDebouncer","Debouncer","flushBatch","wait","queueForBatch","mutation","Promise","resolve","reject","_this_options_batchMaxSize","pendingBatch","push","maxSize","batchMaxSize","maybeExecute","batch","_this_options_batchAtomic","batchMutations","map","param","mutation2","operationMap","Operation","Create","Update","Delete","type","operation","doctype","doc","data","results","mutations","atomic","batchAtomic","result","success","confirm","mutationId","upsert","_mutation_temporaryName","temporaryName","handleTemporaryToRealMapping","registerTempIdMapping","_this_globalOptimisticDocIds_get","globalOptimisticDocIds","delete","onMutationSuccess","error","Error","fail","err","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","mutation1","reject1","err2","return","forceBatchFlush","cancel","mutate","onMutationStart","version","cachedDoc","_this_options_versionFields","versionField","versionFields","cachedVersion","handleOptimisticUpdate","handleOptimisticCreate","_this_options_versionFields1","getDoc","versionField1","cachedVersion1","onTrace","event","details","values","add","docname","status","Status","Pending","snapshot","enableBatching","getAllSubscriptions","subscription","query","scheduleRehydration","RehydrationReason","handleMutationError","_this_realtime","handleServerCreate","handleServerUpdate","handleServerDelete","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","subscription1","isHealthy","refetchAffectedDocs","onOptimisticApply","updateSubscriptionMembership","cryptoRandomId","optimisticDoc","has","set","Set","globalDocIds","matches","matchesFilters","filters","orderBy","limit","docIds","placement","determineOptimisticPlacement","PlacementType","Before","metadata","itemsBeforePage","After","itemsAfterPage","Unknown","pendingRehydration","PendingRehydrationType","FullRefresh","Uncertain","Within","includes","insertDocumentIntoSubscription","created","createDoc","client_mutation_id","realName","globalDocs","_version","updateDoc","remove","removeFromAllSubscriptions","deleteDoc","temporaryIdToRealNameMap","filter","id","_mutation_affected","targets","affected","fresh","onMutationError","entry","isOffline","navigator","onLine","rollbackOptimisticState","errorWithStatus","handleConflict","handleFailedCreate","replace","restoredDoc","latest","base","clientPartial","fullClient","mergeConfig","buildMergeConfig","nonOverlap","merge","hasConflicts","merged","newId","base_modified","refreshed","unused","onConflict","candidate","_subscription_boundaries","_subscription_boundaries1","boundaries","firstItem","lastItem","determinePlacementWithBoundaries","order","first","last","sortFields","parseSortFields","field","isAsc","candidateValue","firstValue","lastValue","orderByArray","Array","isArray","ob","Order","Desc","hasNameField","some","sf","replayPending","_this_options_replayRateLimit","anyFailed","onReplayStart","pendingMutations","listPending","onReplayComplete","rateLimit","replayRateLimit","processMutation","processMutation2","onRetry","errorClass","classifyError","notifyMutationError","delayMs","Math","ceil","indexOf","setTimeout","_errorWithStatus_response","response","fmc","fieldMergeConfig","doctypes","entries","dt","fields","defaultStrategy","MergeStrategy","ServerWins","getTemporaryIdToRealNameMap","clearTemporaryMappings","clear","dispose","crypto","randomUUID","random","toString","slice"],"sources":["mutationEngine.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar mutationEngine_exports = {};\n__export(mutationEngine_exports, {\n MutationEngine: () => MutationEngine\n});\nmodule.exports = __toCommonJS(mutationEngine_exports);\nvar import_pacer = require(\"@tanstack/pacer\");\nvar import_filters = require(\"./filters\");\nvar import_merge = require(\"./merge\");\nvar import_types = require(\"./types\");\nvar import_types2 = require(\"./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 MutationEngine = /* @__PURE__ */ (function() {\n \"use strict\";\n function MutationEngine2(db, realtime, normalizedCache, mutationJournal, subscriptionManager, rehydrationManager) {\n var _this = this;\n var options = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : {};\n _class_call_check(this, MutationEngine2);\n var _options_batchDelay;\n _define_property(this, \"temporaryIdToRealNameMap\", /* @__PURE__ */ new Map());\n _define_property(this, \"globalOptimisticDocIds\", /* @__PURE__ */ new Map());\n _define_property(this, \"pendingBatch\", []);\n _define_property(this, \"batchDebouncer\", void 0);\n _define_property(this, \"db\", void 0);\n _define_property(this, \"realtime\", void 0);\n _define_property(this, \"normalizedCache\", void 0);\n _define_property(this, \"mutationJournal\", void 0);\n _define_property(this, \"subscriptionManager\", void 0);\n _define_property(this, \"rehydrationManager\", void 0);\n _define_property(this, \"options\", void 0);\n this.db = db;\n this.realtime = realtime;\n this.normalizedCache = normalizedCache;\n this.mutationJournal = mutationJournal;\n this.subscriptionManager = subscriptionManager;\n this.rehydrationManager = rehydrationManager;\n this.options = options;\n var batchDelay = (_options_batchDelay = options.batchDelay) !== null && _options_batchDelay !== void 0 ? _options_batchDelay : 100;\n this.batchDebouncer = new import_pacer.Debouncer(function() {\n return _this.flushBatch();\n }, {\n wait: batchDelay\n });\n }\n _create_class(MutationEngine2, [\n {\n key: \"queueForBatch\",\n value: (\n /**\n * Queue a mutation for batch processing.\n * Returns a promise that resolves when the batch is processed.\n */\n function queueForBatch(mutation) {\n var _this = this;\n return new Promise(function(resolve, reject) {\n var _this_options_batchMaxSize;\n _this.pendingBatch.push({\n mutation,\n resolve,\n reject\n });\n var maxSize = (_this_options_batchMaxSize = _this.options.batchMaxSize) !== null && _this_options_batchMaxSize !== void 0 ? _this_options_batchMaxSize : 50;\n if (_this.pendingBatch.length >= maxSize) {\n _this.flushBatch();\n } else {\n _this.batchDebouncer.maybeExecute();\n }\n });\n }\n )\n },\n {\n key: \"flushBatch\",\n value: (\n /**\n * Flush pending mutations as a batch.\n */\n async function flushBatch() {\n if (this.pendingBatch.length === 0) return;\n var batch = [\n ...this.pendingBatch\n ];\n this.pendingBatch = [];\n try {\n var _this_options_batchAtomic;\n var batchMutations = batch.map(function(param) {\n var { mutation: mutation2 } = param;\n var operationMap = {\n [import_types2.Operation.Create]: \"create\",\n [import_types2.Operation.Update]: \"update\",\n [import_types2.Operation.Delete]: \"delete\"\n };\n return {\n type: operationMap[mutation2.operation],\n doctype: mutation2.doc.doctype,\n name: mutation2.doc.name,\n data: mutation2.operation === import_types2.Operation.Delete ? void 0 : mutation2.doc\n };\n });\n var results = await this.db.batchMutations({\n mutations: batchMutations,\n atomic: (_this_options_batchAtomic = this.options.batchAtomic) !== null && _this_options_batchAtomic !== void 0 ? _this_options_batchAtomic : false\n });\n for (var i = 0; i < batch.length; i++) {\n var { mutation, resolve, reject } = batch[i];\n var result = results[i];\n if (result.success) {\n this.mutationJournal.confirm(mutation.mutationId);\n if (result.data) {\n this.normalizedCache.upsert(result.data);\n if (mutation.operation === import_types2.Operation.Create) {\n var _mutation_temporaryName;\n var temporaryName = (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name;\n if (temporaryName && result.data.name && temporaryName !== result.data.name) {\n this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, result.data.name);\n this.rehydrationManager.registerTempIdMapping(temporaryName, result.data.name);\n } else if (temporaryName) {\n var _this_globalOptimisticDocIds_get;\n (_this_globalOptimisticDocIds_get = this.globalOptimisticDocIds.get(mutation.doc.doctype)) === null || _this_globalOptimisticDocIds_get === void 0 ? void 0 : _this_globalOptimisticDocIds_get.delete(temporaryName);\n }\n }\n }\n if (this.options.onMutationSuccess) {\n this.options.onMutationSuccess(mutation);\n }\n resolve(result.data);\n } else {\n var error = new Error(result.error || \"Batch mutation failed\");\n this.mutationJournal.fail(mutation.mutationId);\n reject(error);\n }\n }\n } catch (err) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var { mutation: mutation1, reject: reject1 } = _step.value;\n this.mutationJournal.fail(mutation1.mutationId);\n reject1(err);\n }\n } catch (err2) {\n _didIteratorError = true;\n _iteratorError = err2;\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 )\n },\n {\n key: \"forceBatchFlush\",\n value: (\n /**\n * Force flush any pending batched mutations.\n */\n async function forceBatchFlush() {\n this.batchDebouncer.cancel();\n await this.flushBatch();\n }\n )\n },\n {\n key: \"mutate\",\n value: async function mutate(mutation) {\n var _mutation_temporaryName;\n if (this.options.onMutationStart) this.options.onMutationStart(mutation);\n var { doc } = mutation;\n if ((mutation.operation === import_types2.Operation.Update || mutation.operation === import_types2.Operation.Delete) && !doc.name) {\n throw new Error(\"docname is required for update/delete operations\");\n }\n var version = mutation.version;\n var cachedDoc = void 0;\n if (doc.name) {\n cachedDoc = this.normalizedCache.get({\n doctype: doc.doctype,\n name: doc.name\n });\n }\n if (version === void 0 && doc.name) {\n var _this_options_versionFields;\n var versionField = ((_this_options_versionFields = this.options.versionFields) === null || _this_options_versionFields === void 0 ? void 0 : _this_options_versionFields[doc.doctype]) || this.options.versionField || \"modified\";\n var cachedVersion = cachedDoc ? cachedDoc[versionField] : void 0;\n if (typeof cachedVersion === \"string\") version = cachedVersion;\n }\n if (mutation.operation === import_types2.Operation.Update && doc.name) {\n await this.handleOptimisticUpdate(mutation, cachedDoc);\n }\n if (mutation.operation === import_types2.Operation.Create) {\n await this.handleOptimisticCreate(mutation);\n }\n if (version === void 0 && doc.name && (mutation.operation === import_types2.Operation.Update || mutation.operation === import_types2.Operation.Delete) && !cachedDoc) {\n try {\n var _this_options_versionFields1;\n cachedDoc = await this.db.getDoc(doc.doctype, doc.name);\n var versionField1 = ((_this_options_versionFields1 = this.options.versionFields) === null || _this_options_versionFields1 === void 0 ? void 0 : _this_options_versionFields1[doc.doctype]) || this.options.versionField || \"modified\";\n var cachedVersion1 = cachedDoc ? cachedDoc[versionField1] : void 0;\n if (typeof cachedVersion1 === \"string\") version = cachedVersion1;\n this.normalizedCache.upsert(cachedDoc);\n } catch (err) {\n if (this.options.onTrace) {\n this.options.onTrace({\n event: \"version-fetch-failed\",\n details: {\n doctype: doc.doctype,\n name: doc.name,\n error: err\n }\n });\n }\n }\n }\n var values = mutation.operation === import_types2.Operation.Delete ? void 0 : mutation.operation === import_types2.Operation.Create ? mutation.doc : mutation.doc;\n this.mutationJournal.add(mutation.mutationId, {\n doctype: doc.doctype,\n // Creates journal the optimistic identity (consumer placeholder or\n // engine-generated temp id) so page refreshes keep the pending row\n // and rollback can evict it even when doc.name was never set.\n docname: mutation.operation === import_types2.Operation.Create ? (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : doc.name : doc.name,\n values,\n operation: mutation.operation,\n version,\n status: import_types2.Status.Pending,\n snapshot: doc.name ? cachedDoc : void 0\n });\n if (this.options.enableBatching) {\n try {\n await this.queueForBatch(mutation);\n if (mutation.operation === import_types2.Operation.Create) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype === mutation.doc.doctype) {\n this.rehydrationManager.scheduleRehydration(subscription, import_types2.RehydrationReason.Create);\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 }\n } catch (err) {\n await this.handleMutationError(mutation, err);\n throw err;\n }\n return;\n }\n try {\n var _this_realtime;\n if (mutation.operation === import_types2.Operation.Create) {\n await this.handleServerCreate(mutation);\n } else if (mutation.operation === import_types2.Operation.Update && doc.name) {\n await this.handleServerUpdate(mutation, version);\n } else if (mutation.operation === import_types2.Operation.Delete && doc.name) {\n await this.handleServerDelete(mutation, version);\n }\n this.mutationJournal.confirm(mutation.mutationId);\n if (this.options.onMutationSuccess) {\n this.options.onMutationSuccess(mutation);\n }\n if (mutation.operation === import_types2.Operation.Create) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var subscription1 = _step1.value;\n if (subscription1.query.doctype === mutation.doc.doctype) {\n this.rehydrationManager.scheduleRehydration(subscription1, import_types2.RehydrationReason.Create);\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 }\n if (!((_this_realtime = this.realtime) === null || _this_realtime === void 0 ? void 0 : _this_realtime.isHealthy())) {\n await this.refetchAffectedDocs(mutation);\n }\n } catch (err) {\n await this.handleMutationError(mutation, err);\n throw err;\n }\n }\n },\n {\n key: \"handleOptimisticUpdate\",\n value: async function handleOptimisticUpdate(mutation, cachedDoc) {\n var doc = cachedDoc ? {\n ...cachedDoc,\n ...mutation.doc\n } : mutation.doc;\n this.normalizedCache.upsert(doc);\n if (this.options.onOptimisticApply) {\n this.options.onOptimisticApply({\n doctype: mutation.doc.doctype,\n name: mutation.doc.name,\n operation: mutation.operation\n });\n }\n this.subscriptionManager.updateSubscriptionMembership(doc);\n }\n },\n {\n key: \"handleOptimisticCreate\",\n value: async function handleOptimisticCreate(mutation) {\n var temporaryName = mutation.doc.name || `tmp_${cryptoRandomId()}`;\n mutation.temporaryName = temporaryName;\n var optimisticDoc = {\n ...mutation.doc,\n name: temporaryName\n };\n this.normalizedCache.upsert(optimisticDoc);\n if (!this.globalOptimisticDocIds.has(mutation.doc.doctype)) {\n this.globalOptimisticDocIds.set(mutation.doc.doctype, /* @__PURE__ */ new Set());\n }\n var globalDocIds = this.globalOptimisticDocIds.get(mutation.doc.doctype);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype !== mutation.doc.doctype) continue;\n var matches = (0, import_filters.matchesFilters)(optimisticDoc, subscription.query.filters);\n if (!matches) continue;\n if (globalDocIds.has(temporaryName)) {\n continue;\n }\n if (subscription.query.orderBy && typeof subscription.query.limit === \"number\" && subscription.query.limit > 0 && subscription.docIds.length > 0) {\n var placement = this.determineOptimisticPlacement(subscription, optimisticDoc);\n switch (placement) {\n case import_types2.PlacementType.Before:\n if (subscription.metadata) {\n subscription.metadata.itemsBeforePage = (subscription.metadata.itemsBeforePage || 0) + 1;\n }\n continue;\n case import_types2.PlacementType.After:\n if (subscription.metadata) {\n subscription.metadata.itemsAfterPage = (subscription.metadata.itemsAfterPage || 0) + 1;\n }\n continue;\n case import_types2.PlacementType.Unknown:\n subscription.pendingRehydration = import_types2.PendingRehydrationType.FullRefresh;\n this.rehydrationManager.scheduleRehydration(subscription, import_types2.RehydrationReason.Uncertain);\n break;\n case import_types2.PlacementType.Within:\n break;\n }\n }\n if (!subscription.docIds.includes(temporaryName)) {\n this.subscriptionManager.insertDocumentIntoSubscription(subscription, optimisticDoc);\n globalDocIds.add(temporaryName);\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 }\n },\n {\n key: \"handleServerCreate\",\n value: async function handleServerCreate(mutation) {\n var _mutation_temporaryName;\n var created = await this.db.createDoc({\n ...mutation.doc,\n client_mutation_id: mutation.mutationId\n });\n var realName = created === null || created === void 0 ? void 0 : created.name;\n var temporaryName = (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name;\n if (realName) {\n this.normalizedCache.upsert({\n ...created,\n doctype: created.doctype || mutation.doc.doctype\n });\n }\n if (realName && temporaryName && realName !== temporaryName) {\n this.handleTemporaryToRealMapping(mutation.doc.doctype, temporaryName, realName);\n this.rehydrationManager.registerTempIdMapping(temporaryName, realName);\n } else if (temporaryName) {\n var globalDocs = this.globalOptimisticDocIds.get(mutation.doc.doctype);\n if (globalDocs) {\n globalDocs.delete(temporaryName);\n }\n }\n }\n },\n {\n key: \"handleServerUpdate\",\n value: async function handleServerUpdate(mutation, _version) {\n await this.db.updateDoc(mutation.doc);\n }\n },\n {\n key: \"handleServerDelete\",\n value: async function handleServerDelete(mutation, _version) {\n this.normalizedCache.remove({\n doctype: mutation.doc.doctype,\n name: mutation.doc.name\n });\n this.subscriptionManager.removeFromAllSubscriptions(mutation.doc.doctype, mutation.doc.name);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype === mutation.doc.doctype && subscription.docIds.includes(mutation.doc.name)) {\n this.rehydrationManager.scheduleRehydration(subscription, import_types2.RehydrationReason.Delete);\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 await this.db.deleteDoc(mutation.doc);\n }\n },\n {\n key: \"handleTemporaryToRealMapping\",\n value: function handleTemporaryToRealMapping(doctype, temporaryName, realName) {\n this.temporaryIdToRealNameMap.set(temporaryName, realName);\n var globalDocs = this.globalOptimisticDocIds.get(doctype);\n if (globalDocs) {\n globalDocs.delete(temporaryName);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype !== doctype) continue;\n if (!subscription.docIds.includes(temporaryName)) continue;\n subscription.docIds = subscription.docIds.includes(realName) ? subscription.docIds.filter(function(id) {\n return id !== temporaryName;\n }) : subscription.docIds.map(function(id) {\n return id === temporaryName ? realName : id;\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 this.normalizedCache.remove({\n doctype,\n name: temporaryName\n });\n }\n },\n {\n key: \"refetchAffectedDocs\",\n value: async function refetchAffectedDocs(mutation) {\n var _mutation_affected;\n var targets = [];\n var docname = mutation.doc.name;\n var doctype = mutation.doc.doctype;\n var realName = docname && this.temporaryIdToRealNameMap.get(docname) || docname;\n if (realName && mutation.operation === import_types2.Operation.Update) {\n targets.push({\n doctype,\n name: realName\n });\n }\n if ((_mutation_affected = mutation.affected) === null || _mutation_affected === void 0 ? void 0 : _mutation_affected.length) targets.push(...mutation.affected);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = targets[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var target = _step.value;\n var fresh = await this.db.getDoc(target.doctype, target.name);\n this.normalizedCache.upsert(fresh);\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 {\n key: \"handleMutationError\",\n value: async function handleMutationError(mutation, err) {\n if (this.options.onMutationError) this.options.onMutationError({\n mutation,\n err\n });\n this.mutationJournal.fail(mutation.mutationId);\n var entry = this.mutationJournal.get(mutation.mutationId);\n var isOffline = typeof navigator !== \"undefined\" && navigator.onLine === false;\n if (!isOffline) {\n await this.rollbackOptimisticState(mutation, entry);\n }\n var errorWithStatus = err;\n var docname = mutation.doc.name;\n if (errorWithStatus && (errorWithStatus.status === 409 || errorWithStatus.status === 412) && docname) {\n await this.handleConflict(mutation, entry);\n }\n }\n },\n {\n key: \"rollbackOptimisticState\",\n value: (\n /**\n * Rolls back optimistic state when a mutation fails.\n * Handles all operation types: create, update, and delete.\n */\n async function rollbackOptimisticState(mutation, entry) {\n var doctype = mutation.doc.doctype;\n var docname = mutation.doc.name;\n switch (mutation.operation) {\n case import_types2.Operation.Create:\n await this.handleFailedCreate(mutation);\n break;\n case import_types2.Operation.Update:\n if ((entry === null || entry === void 0 ? void 0 : entry.snapshot) && docname) {\n this.normalizedCache.upsert(entry.snapshot, {\n replace: true\n });\n this.subscriptionManager.updateSubscriptionMembership(entry.snapshot);\n }\n break;\n case import_types2.Operation.Delete:\n if ((entry === null || entry === void 0 ? void 0 : entry.snapshot) && docname) {\n this.normalizedCache.upsert(entry.snapshot, {\n replace: true\n });\n var restoredDoc = entry.snapshot;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype !== doctype) continue;\n var matches = (0, import_filters.matchesFilters)(restoredDoc, subscription.query.filters);\n if (matches && !subscription.docIds.includes(docname)) {\n this.subscriptionManager.insertDocumentIntoSubscription(subscription, restoredDoc);\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 }\n break;\n }\n }\n )\n },\n {\n key: \"handleFailedCreate\",\n value: async function handleFailedCreate(mutation) {\n var _mutation_temporaryName;\n var temporaryName = mutation.operation === import_types2.Operation.Create ? (_mutation_temporaryName = mutation.temporaryName) !== null && _mutation_temporaryName !== void 0 ? _mutation_temporaryName : mutation.doc.name : mutation.doc.name;\n var doctype = mutation.doc.doctype;\n if (temporaryName) {\n var globalDocs = this.globalOptimisticDocIds.get(doctype);\n if (globalDocs) {\n globalDocs.delete(temporaryName);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.subscriptionManager.getAllSubscriptions().values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var subscription = _step.value;\n if (subscription.query.doctype !== doctype) continue;\n subscription.docIds = subscription.docIds.filter(function(id) {\n return id !== temporaryName;\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 this.normalizedCache.remove({\n doctype,\n name: temporaryName\n });\n }\n }\n },\n {\n key: \"handleConflict\",\n value: async function handleConflict(mutation, entry) {\n var doctype = mutation.doc.doctype;\n var docname = mutation.doc.name;\n if (!docname) return;\n try {\n var latest = await this.db.getDoc(doctype, docname);\n var base = entry === null || entry === void 0 ? void 0 : entry.snapshot;\n var clientPartial = (mutation.operation === import_types2.Operation.Delete ? void 0 : mutation.doc) || {};\n var fullClient = base ? {\n ...base,\n ...clientPartial,\n doctype,\n name: docname\n } : {\n ...clientPartial,\n doctype,\n name: docname\n };\n var mergeConfig = this.buildMergeConfig();\n var nonOverlap = (0, import_merge.merge)(base, fullClient, latest, mergeConfig, doctype);\n if (!nonOverlap.hasConflicts) {\n var _this_options_versionFields;\n var versionField = ((_this_options_versionFields = this.options.versionFields) === null || _this_options_versionFields === void 0 ? void 0 : _this_options_versionFields[doctype]) || this.options.versionField || \"modified\";\n if (nonOverlap.merged) {\n var newId = cryptoRandomId();\n await this.db.updateDoc({\n ...nonOverlap.merged,\n client_mutation_id: newId,\n base_modified: latest[versionField] || void 0\n });\n }\n var refreshed = await this.db.getDoc(doctype, docname);\n this.normalizedCache.upsert(refreshed);\n this.mutationJournal.confirm(mutation.mutationId);\n return;\n }\n this.normalizedCache.upsert(latest);\n } catch (unused) {\n }\n if (this.options.onConflict) this.options.onConflict({\n doctype,\n name: docname\n });\n }\n },\n {\n key: \"determineOptimisticPlacement\",\n value: (\n /**\n * Determines optimal placement for an optimistic item based on sort fields.\n * Supports multi-column sorting with proper tie-breaking.\n *\n * @param subscription - The subscription to check placement against\n * @param candidate - The document to place\n * @returns Placement relative to current page:\n * - 'before': Item belongs on a previous page\n * - 'within': Item belongs on the current page\n * - 'after': Item belongs on a later page\n * - 'unknown': Cannot determine placement (needs full refresh)\n *\n * @remarks\n * Uses page boundaries when available for O(1) placement checks.\n * Falls back to comparing against first/last items in current page.\n * Supports multi-field sorting with tie-breaking.\n */\n function determineOptimisticPlacement(subscription, candidate) {\n var _subscription_boundaries, _subscription_boundaries1;\n var docIds = subscription.docIds;\n if (!docIds.length) return import_types2.PlacementType.Unknown;\n if (((_subscription_boundaries = subscription.boundaries) === null || _subscription_boundaries === void 0 ? void 0 : _subscription_boundaries.firstItem) && ((_subscription_boundaries1 = subscription.boundaries) === null || _subscription_boundaries1 === void 0 ? void 0 : _subscription_boundaries1.lastItem)) {\n return this.determinePlacementWithBoundaries(subscription.boundaries, candidate, subscription.query.orderBy);\n }\n var order = subscription.query.orderBy;\n if (!order) return import_types2.PlacementType.Unknown;\n var doctype = subscription.query.doctype;\n var first = this.normalizedCache.get({\n doctype,\n name: docIds[0]\n });\n var last = this.normalizedCache.get({\n doctype,\n name: docIds[docIds.length - 1]\n });\n if (!first || !last) return import_types2.PlacementType.Unknown;\n var sortFields = this.parseSortFields(order);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = sortFields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var { field, isAsc } = _step.value;\n var candidateValue = candidate[field];\n var firstValue = first[field];\n var lastValue = last[field];\n if (candidateValue == null || firstValue == null || lastValue == null) {\n continue;\n }\n if (isAsc) {\n if (candidateValue < firstValue) return import_types2.PlacementType.Before;\n if (candidateValue > lastValue) return import_types2.PlacementType.After;\n } else {\n if (candidateValue > firstValue) return import_types2.PlacementType.Before;\n if (candidateValue < lastValue) return import_types2.PlacementType.After;\n }\n if (candidateValue !== firstValue && candidateValue !== lastValue) {\n return import_types2.PlacementType.Within;\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 import_types2.PlacementType.Within;\n }\n )\n },\n {\n key: \"determinePlacementWithBoundaries\",\n value: (\n // All sort fields match boundaries\n function determinePlacementWithBoundaries(boundaries, candidate, orderBy) {\n if (!boundaries.firstItem || !boundaries.lastItem) return import_types2.PlacementType.Unknown;\n var sortFields = this.parseSortFields(orderBy);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = sortFields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var { field, isAsc } = _step.value;\n var candidateValue = candidate[field];\n var firstValue = boundaries.firstItem[field];\n var lastValue = boundaries.lastItem[field];\n if (candidateValue == null || firstValue == null || lastValue == null) {\n continue;\n }\n if (isAsc) {\n if (candidateValue < firstValue) return import_types2.PlacementType.Before;\n if (candidateValue > lastValue) return import_types2.PlacementType.After;\n } else {\n if (candidateValue > firstValue) return import_types2.PlacementType.Before;\n if (candidateValue < lastValue) return import_types2.PlacementType.After;\n }\n if (candidateValue !== firstValue && candidateValue !== lastValue) {\n return import_types2.PlacementType.Within;\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 import_types2.PlacementType.Within;\n }\n )\n },\n {\n key: \"parseSortFields\",\n value: function parseSortFields(orderBy) {\n if (!orderBy) return [\n {\n field: \"name\",\n isAsc: true\n }\n ];\n var orderByArray = Array.isArray(orderBy) ? orderBy : [\n orderBy\n ];\n var sortFields = orderByArray.map(function(ob) {\n return {\n field: ob.field,\n isAsc: ob.order !== import_types.Order.Desc\n };\n });\n var hasNameField = sortFields.some(function(sf) {\n return sf.field === \"name\";\n });\n if (!hasNameField) {\n sortFields.push({\n field: \"name\",\n isAsc: true\n });\n }\n return sortFields;\n }\n },\n {\n key: \"replayPending\",\n value: (\n /**\n * Replays pending mutations with simplified error handling and rate limiting.\n *\n * Since HTTP client now handles retries automatically for transient errors,\n * we only need to handle:\n * - Success → confirm and remove from journal\n * - Conflict (409/412) → attempt merge resolution, then retry\n * - Auth (401/403) → notify user, keep in journal for later retry\n * - Permanent (4xx validation) → fail and remove from journal\n * - Failed (exhausted retries) → keep in journal but notify\n *\n * The replay path uses plain CRUD without optimistic writes,\n * since optimistic state is already reflected in the cache.\n *\n * Rate limiting is applied to prevent hammering the server when replaying\n * large numbers of queued mutations after coming back online.\n */\n async function replayPending() {\n var _this = this;\n var _this_options_replayRateLimit;\n var anyFailed = false;\n if (this.options.onReplayStart) this.options.onReplayStart();\n var pendingMutations = this.mutationJournal.listPending();\n if (pendingMutations.length === 0) {\n if (this.options.onReplayComplete) {\n this.options.onReplayComplete({\n anyFailed: false\n });\n }\n return;\n }\n var rateLimit = (_this_options_replayRateLimit = this.options.replayRateLimit) !== null && _this_options_replayRateLimit !== void 0 ? _this_options_replayRateLimit : 10;\n var processMutation = async function processMutation2(mutation2) {\n var { id, entry } = mutation2;\n if (_this.options.onRetry) {\n _this.options.onRetry({\n id,\n operation: entry.operation\n });\n }\n try {\n if (entry.operation === import_types2.Operation.Create) {\n var created = await _this.db.createDoc({\n ...entry.values,\n client_mutation_id: id,\n doctype: entry.doctype,\n name: entry.docname || cryptoRandomId()\n });\n if (created === null || created === void 0 ? void 0 : created.name) {\n _this.normalizedCache.upsert({\n ...created,\n doctype: created.doctype || entry.doctype\n });\n if (entry.docname && created.name !== entry.docname) {\n _this.handleTemporaryToRealMapping(entry.doctype, entry.docname, created.name);\n _this.rehydrationManager.registerTempIdMapping(entry.docname, created.name);\n }\n }\n } else if (entry.operation === import_types2.Operation.Update && entry.docname) {\n await _this.db.updateDoc({\n ...entry.values,\n client_mutation_id: id,\n base_modified: entry.version,\n doctype: entry.doctype,\n name: entry.docname\n });\n } else if (entry.operation === import_types2.Operation.Delete && entry.docname) {\n await _this.db.deleteDoc({\n doctype: entry.doctype,\n name: entry.docname,\n client_mutation_id: id\n });\n }\n _this.mutationJournal.confirm(id);\n } catch (err) {\n var errorClass = _this.classifyError(err);\n anyFailed = true;\n if (errorClass === \"conflict\") {\n if (_this.options.onConflict) {\n _this.options.onConflict({\n doctype: entry.doctype,\n name: entry.docname\n });\n }\n } else if (errorClass === \"auth\") {\n } else if (errorClass === \"permanent\") {\n _this.mutationJournal.fail(id);\n _this.notifyMutationError(id, entry, err);\n } else if (errorClass === \"failed\") {\n _this.mutationJournal.fail(id);\n _this.notifyMutationError(id, entry, err);\n }\n }\n };\n var delayMs = Math.ceil(1e3 / rateLimit);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = pendingMutations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var mutation = _step.value;\n await processMutation(mutation);\n if (pendingMutations.indexOf(mutation) < pendingMutations.length - 1) {\n await new Promise(function(resolve) {\n return setTimeout(resolve, delayMs);\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 if (this.options.onReplayComplete) {\n this.options.onReplayComplete({\n anyFailed\n });\n }\n }\n )\n },\n {\n key: \"classifyError\",\n value: (\n /**\n * Classifies errors for journal management.\n */\n function classifyError(err) {\n var _errorWithStatus_response;\n var errorWithStatus = err;\n var status = (errorWithStatus === null || errorWithStatus === void 0 ? void 0 : errorWithStatus.status) || (errorWithStatus === null || errorWithStatus === void 0 ? void 0 : (_errorWithStatus_response = errorWithStatus.response) === null || _errorWithStatus_response === void 0 ? void 0 : _errorWithStatus_response.status);\n if (status === 409 || status === 412) return \"conflict\";\n if (status === 401 || status === 403) return \"auth\";\n if (status && status >= 400 && status < 500) return \"permanent\";\n return \"failed\";\n }\n )\n },\n {\n key: \"notifyMutationError\",\n value: (\n /**\n * Helper to notify about mutation errors with proper typing\n */\n function notifyMutationError(id, entry, err) {\n if (!this.options.onMutationError) return;\n var mutation;\n if (entry.operation === import_types2.Operation.Create) {\n var doc = entry.values || {\n doctype: entry.doctype,\n name: entry.docname\n };\n mutation = {\n mutationId: id,\n operation: import_types2.Operation.Create,\n doc,\n version: entry.version,\n affected: []\n };\n } else if (entry.operation === import_types2.Operation.Update) {\n mutation = {\n mutationId: id,\n operation: import_types2.Operation.Update,\n doc: {\n ...entry.values,\n doctype: entry.doctype,\n name: entry.docname\n },\n version: entry.version,\n affected: []\n };\n } else {\n mutation = {\n mutationId: id,\n operation: import_types2.Operation.Delete,\n doc: {\n doctype: entry.doctype,\n name: entry.docname\n },\n version: entry.version,\n affected: []\n };\n }\n this.options.onMutationError({\n mutation,\n err\n });\n }\n )\n },\n {\n key: \"buildMergeConfig\",\n value: (\n /**\n * Converts SyncOptions.fieldMergeConfig into the MergeConfig format\n * expected by the merge() function.\n */\n function buildMergeConfig() {\n var fmc = this.options.fieldMergeConfig;\n if (!fmc) return void 0;\n var doctypes = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(fmc)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [dt, fields] = _step.value;\n doctypes[dt] = {\n fields\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 defaultStrategy: import_merge.MergeStrategy.ServerWins,\n doctypes\n };\n }\n )\n },\n {\n /** Gets temporary to real name mapping. */\n key: \"getTemporaryIdToRealNameMap\",\n value: function getTemporaryIdToRealNameMap() {\n return this.temporaryIdToRealNameMap;\n }\n },\n {\n /** Clears all temporary mappings. */\n key: \"clearTemporaryMappings\",\n value: function clearTemporaryMappings() {\n this.temporaryIdToRealNameMap.clear();\n this.globalOptimisticDocIds.clear();\n }\n },\n {\n /**\n * Disposes of resources.\n */\n key: \"dispose\",\n value: function dispose() {\n this.batchDebouncer.cancel();\n this.pendingBatch = [];\n this.clearTemporaryMappings();\n }\n }\n ]);\n return MutationEngine2;\n})();\nfunction cryptoRandomId() {\n if (typeof crypto !== \"undefined\" && \"randomUUID\" in crypto) return crypto.randomUUID();\n return Math.random().toString(36).slice(2);\n}\n//# sourceMappingURL=mutationEngine.js.map\n"],"mappings":"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","ignoreList":[]}