@procedures/store 0.51.0 → 0.52.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.
@@ -114,9 +114,11 @@ export interface HybridStorageOptions {
114
114
  * three-way merge uses it. `null`: the remote had no item. The value is undefined when the
115
115
  * storage does not know it. Examples are a storage with no `versionOf`, an operation of an
116
116
  * older version, and a write after a restart, before a sync.
117
+ * @param context - `context.overlap(paths)` reports the paths where the merge kept only one side.
118
+ * The hook `onDropped` gets one call with the reason `overlap` for each call.
117
119
  * @returns Merged value
118
120
  */
119
- mergeFn?: <T>(local: T, remote: T, base: T | null | undefined) => T;
121
+ mergeFn?: <T>(local: T, remote: T, base: T | null | undefined, context: MergeContext) => T;
120
122
  /**
121
123
  * The key of a remote item, for the local cache. The default reads a string `id` field. Give
122
124
  * a function for items with another key, for example `getSerializedKey` for procedure records.
@@ -220,6 +222,9 @@ export interface HybridStorageOptions {
220
222
  * `remote` decides, on a delete of the remote and on a refusal. The call comes after the local
221
223
  * copy changed, so the hook can write the value again. An error of the hook does not stop the
222
224
  * sync. The sync waits for the hook.
225
+ *
226
+ * The hook also gets each overlap that `mergeFn` reports, with the reason `overlap`. The merged write of an overlap
227
+ * stays in the queue.
223
228
  */
224
229
  onDropped?: (drop: DroppedWrite) => void | Promise<void>;
225
230
  /**
@@ -408,6 +413,14 @@ export interface QueueRefusal {
408
413
  */
409
414
  restored: boolean;
410
415
  }
416
+ /** The fourth argument of `mergeFn` (roadmap CLI-109). */
417
+ export interface MergeContext {
418
+ /**
419
+ * This method reports the paths where the merge kept only one side, for example `["title"]`. Each call during the
420
+ * merge gives one call of `onDropped` with the reason `overlap`. A call after the end of the merge changes nothing.
421
+ */
422
+ overlap(paths: readonly string[]): void;
423
+ }
411
424
  /**
412
425
  * A queued write that left the queue with no send that the remote took: the argument of the hook
413
426
  * `onDropped` (roadmap CLI-106). The hook can get a write again after a crash, because the store
@@ -423,13 +436,21 @@ export interface DroppedWrite {
423
436
  value: unknown;
424
437
  /**
425
438
  * The cause: the policy took the remote value, the remote deleted the item, or the remote refused the write. The
426
- * cause `too-large` tells that the write was larger than the limit of the remote (roadmap CLI-108).
439
+ * cause `too-large` tells that the write was larger than the limit of the remote (roadmap CLI-108). The cause
440
+ * `overlap` tells that `mergeFn` kept only one side of some paths (roadmap CLI-109). Its merged write stays in the
441
+ * queue.
427
442
  */
428
- reason: "conflict" | "remote-delete" | "refused" | "too-large";
443
+ reason: "conflict" | "remote-delete" | "refused" | "too-large" | "overlap";
429
444
  /** The sync that dropped the write. */
430
445
  during: "pull" | "push";
431
- /** The remote value that replaced the write, for the reason `conflict`. */
446
+ /** The remote value that replaced the write, for the reason `conflict`. The remote value of the merge, for `overlap`. */
432
447
  remote?: unknown;
448
+ /** The base value of the merge, for the reason `overlap`. This value is undefined when the storage does not know it. */
449
+ base?: unknown;
450
+ /** The value that `mergeFn` gave, for the reason `overlap`. */
451
+ merged?: unknown;
452
+ /** The paths that `mergeFn` reported, for the reason `overlap`. */
453
+ paths?: string[];
433
454
  /** The error of the remote, for the reasons `refused` and `too-large`. */
434
455
  error?: unknown;
435
456
  }
@@ -1087,6 +1108,11 @@ export declare class HybridStorage<T> implements CollectionStorage<T> {
1087
1108
  private resolvePending;
1088
1109
  /** This method counts a dropped write and gives it to the hook `onDropped`. An error of the hook does not stop the sync. */
1089
1110
  private reportDropped;
1111
+ /**
1112
+ * This method gives each overlap of a merge to the hook `onDropped` (roadmap CLI-109). It counts the overlaps, not the
1113
+ * dropped writes: the merged write stays in the queue. An error of the hook does not stop the sync.
1114
+ */
1115
+ private reportOverlaps;
1090
1116
  /**
1091
1117
  * This method removes an id from the queued operations. It gives false when a queued clear touches it: nothing
1092
1118
  * changes then.
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/storage/hybrid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/storage/hybrid.ts"],"names":[],"mappings":"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"}
@@ -648,6 +648,7 @@ export class HybridStorage {
648
648
  syncCount: 0,
649
649
  conflicts: 0,
650
650
  dropped: 0,
651
+ overlaps: 0,
651
652
  };
652
653
  constructor(remote, options = {}) {
653
654
  // The local copy tests the preconditions of the callers (roadmap CLI-16): it gets `versionOf`
@@ -1976,6 +1977,7 @@ export class HybridStorage {
1976
1977
  syncCount: this.stats.syncCount,
1977
1978
  conflicts: this.stats.conflicts,
1978
1979
  dropped: this.stats.dropped,
1980
+ overlaps: this.stats.overlaps,
1979
1981
  pendingOps: this.offlineOps.length,
1980
1982
  isOnline: this.isOnline,
1981
1983
  mode: this.mode,
@@ -2368,9 +2370,11 @@ export class HybridStorage {
2368
2370
  conflicts.push(id);
2369
2371
  return false;
2370
2372
  }
2371
- const resolved = this.resolveConflict(localItem, item);
2373
+ const overlaps = [];
2374
+ const resolved = this.resolveConflict(localItem, item, undefined, overlaps);
2372
2375
  await this.localSet(id, resolved, this.syncOrigin);
2373
2376
  this.stats.conflicts++;
2377
+ await this.reportOverlaps({ id, during: "pull", local: localItem, remote: item, base: undefined, merged: resolved }, overlaps);
2374
2378
  }
2375
2379
  if (remoteVersion !== undefined) {
2376
2380
  this.bases.set(id, remoteVersion);
@@ -2445,7 +2449,9 @@ export class HybridStorage {
2445
2449
  case "merge": {
2446
2450
  if (localItem === undefined)
2447
2451
  break;
2448
- const merged = this.resolveConflict(localItem, remoteItem, this.queuedBaseValue(id));
2452
+ const base = this.queuedBaseValue(id);
2453
+ const overlaps = [];
2454
+ const merged = this.resolveConflict(localItem, remoteItem, base, overlaps);
2449
2455
  if (!this.dropQueued(id))
2450
2456
  break;
2451
2457
  await this.localSet(id, merged, this.syncOrigin);
@@ -2453,6 +2459,7 @@ export class HybridStorage {
2453
2459
  this.noteBaseValue(id, remoteVersion, remoteItem);
2454
2460
  // The merged write changes the remote item of this conflict: that item is its base
2455
2461
  this.offlineOps.push({ type: "set", data: { id, value: merged }, timestamp: Date.now(), base: [[id, remoteVersion]], baseValues: [[id, remoteItem]] });
2462
+ await this.reportOverlaps({ id, during, local: localItem, remote: remoteItem, base, merged }, overlaps);
2456
2463
  return true;
2457
2464
  }
2458
2465
  case "error":
@@ -2475,6 +2482,30 @@ export class HybridStorage {
2475
2482
  // An error of the hook does not stop the sync
2476
2483
  }
2477
2484
  }
2485
+ /**
2486
+ * This method gives each overlap of a merge to the hook `onDropped` (roadmap CLI-109). It counts the overlaps, not the
2487
+ * dropped writes: the merged write stays in the queue. An error of the hook does not stop the sync.
2488
+ */
2489
+ async reportOverlaps(merge, overlaps) {
2490
+ for (const paths of overlaps) {
2491
+ this.stats.overlaps++;
2492
+ try {
2493
+ await this.options.onDropped?.({
2494
+ id: merge.id,
2495
+ value: merge.local,
2496
+ reason: "overlap",
2497
+ during: merge.during,
2498
+ remote: merge.remote,
2499
+ base: merge.base,
2500
+ merged: merge.merged,
2501
+ paths,
2502
+ });
2503
+ }
2504
+ catch {
2505
+ // An error of the hook does not stop the sync
2506
+ }
2507
+ }
2508
+ }
2478
2509
  /**
2479
2510
  * This method removes an id from the queued operations. It gives false when a queued clear touches it: nothing
2480
2511
  * changes then.
@@ -2874,7 +2905,7 @@ export class HybridStorage {
2874
2905
  /**
2875
2906
  * Resolve conflict between local and remote versions.
2876
2907
  */
2877
- resolveConflict(local, remote, base) {
2908
+ resolveConflict(local, remote, base, overlaps) {
2878
2909
  switch (this.options.conflictResolution) {
2879
2910
  case "local":
2880
2911
  return local;
@@ -2884,7 +2915,21 @@ export class HybridStorage {
2884
2915
  if (!this.options.mergeFn) {
2885
2916
  throw new Error("Merge function required for conflict resolution strategy 'merge'");
2886
2917
  }
2887
- return this.options.mergeFn(local, remote, base);
2918
+ {
2919
+ let open = true;
2920
+ const context = {
2921
+ overlap: (paths) => {
2922
+ if (open)
2923
+ overlaps?.push([...paths]);
2924
+ },
2925
+ };
2926
+ try {
2927
+ return this.options.mergeFn(local, remote, base, context);
2928
+ }
2929
+ finally {
2930
+ open = false;
2931
+ }
2932
+ }
2888
2933
  case "error":
2889
2934
  throw new Error(`Conflict detected between local and remote versions`);
2890
2935
  default: