@procedures/store 0.52.1 → 0.52.3

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/dist/browser.d.ts CHANGED
@@ -20,7 +20,7 @@
20
20
  */
21
21
  export * from "./indexeddb.js";
22
22
  export { HybridStorage, PendingWriteError, QueueFullError, ReadOnlyError, MissingKeysError, QueueStoreError, ConflictError, ModeSwitchError, SyncStateError, RemoteApplyHookError, } from "./storage/hybrid.js";
23
- export type { HybridStorageOptions, HybridMode, LocalCopyStorage, QueueRefusal, RemoteApplyCause, RemoteApplyContext, RemoteApplyHook, } from "./storage/hybrid.js";
23
+ export type { HybridStorageOptions, HybridMode, LocalCopyStorage, PushBatch, QueueRefusal, RemoteApplyCause, RemoteApplyContext, RemoteApplyHook, } from "./storage/hybrid.js";
24
24
  export { TabCoordinator, TabGroup } from "./storage/tab-coordinator.js";
25
25
  export type { TabAbortSignalLike, TabChannelFactory, TabChannelLike, TabCollection, TabCollectionOptions, TabCoordinatorOptions, TabGroupOptions, TabLockManagerLike, TabRetryOptions, TabRole, TabSnapshotOptions, } from "./storage/tab-coordinator.js";
26
26
  export type { ConflictResolution, SyncError, SyncStatus } from "./storage/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAexE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAexE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -210,6 +210,34 @@ export interface HybridStorageOptions {
210
210
  * code `PAYLOAD_TOO_LARGE`.
211
211
  */
212
212
  isTooLarge?: (error: unknown) => boolean;
213
+ /**
214
+ * This function reads the capacity of a send from an error of `isTooLarge` (roadmap CLI-121). It gives the units of
215
+ * the refused send and the capacity of the remote limit, or undefined. Only `pushBatch` reads it. The default reads
216
+ * the numbers `units` and `capacity` of the metadata of the error. A capacity refusal of a limit of the server gives
217
+ * these numbers.
218
+ */
219
+ capacityOf?: (error: unknown) => {
220
+ readonly units: number;
221
+ readonly capacity: number;
222
+ } | undefined;
223
+ /**
224
+ * The merge of queued writes into one batch for each send (roadmap CLI-121). Without it, the push sends each queued
225
+ * write alone. With it, the push sends the run of sets at the head of the queue as one `setBatch`. It sends the run
226
+ * of deletes as one `deleteBatch`. Thus a first sync of many writes makes few remote calls.
227
+ *
228
+ * - A run stops at a write of another kind and at an id that the run already has. It also stops at a write that
229
+ * waits for the queue store, and at the caps of `PushBatch`. So the order of the writes of each id stays.
230
+ * - A delete of one id with a base version does not join a run, because `deleteBatch` sends no base versions.
231
+ * - A queued batch over the caps goes as batches within the caps. Set the caps within the capacity of a remote limit
232
+ * for each call. Then no send of a flush is larger than that capacity. A limit with a cost for each item is an example.
233
+ * - The writes leave the queue only after the remote took the batch.
234
+ * - When the remote refuses a merged batch or finds a conflict in it, the push sends each write of the run again
235
+ * alone. Thus `onRefused`, `onDropped` and the conflict policy get the same writes as without the merge.
236
+ * - A send of n ids with an error of `isTooLarge` lowers the cap of ids of each later send. With a capacity of
237
+ * `capacityOf`, the cap is n × capacity / units. Without it, the cap is half of n. The push then sends the same
238
+ * writes in smaller sends. Only a write of one id with this error leaves the queue, with the reason `too-large`.
239
+ */
240
+ pushBatch?: PushBatch | undefined;
213
241
  /**
214
242
  * This hook gets each queued write that the remote refused (roadmap O67). The local copy of its
215
243
  * ids gets the remote values again, except for an id that a later queued write changes. An
@@ -536,6 +564,13 @@ export declare class RemoteApplyHookError extends Error {
536
564
  readonly code = "REMOTE_APPLY_HOOK";
537
565
  constructor(calls: number);
538
566
  }
567
+ /** The caps of a merged send of the queue (roadmap CLI-121). */
568
+ export interface PushBatch {
569
+ /** The most ids in one merged send. The default is 100. */
570
+ readonly maxItems?: number | undefined;
571
+ /** The most characters of the JSON text of the writes in one merged send. The default is 1048576 (1 MiB). */
572
+ readonly maxBytes?: number | undefined;
573
+ }
539
574
  /**
540
575
  * A storage for the local copy of a `HybridStorage` (roadmap R45): a collection storage that gives
541
576
  * its entries. A durable one, for example `SqliteStorage` of `@procedures/sqlite`, keeps the local
@@ -582,6 +617,12 @@ export declare class HybridStorage<T> implements CollectionStorage<T> {
582
617
  private offlineOps;
583
618
  /** The operations in `offlineOps` that the queue store does not have yet */
584
619
  private readonly unpersisted;
620
+ /** The count of operations at the head of the queue that the push sends at this time: more than 1 for a merged send (roadmap CLI-121) */
621
+ private sendingCount;
622
+ /** The length of the JSON text of each queued operation, for the byte cap of a merged send */
623
+ private readonly opSizes;
624
+ /** The cap of ids of one send that an error of `isTooLarge` set, below `pushBatch.maxItems` (roadmap CLI-121) */
625
+ private itemCap;
585
626
  /** True when the queue store can differ from `offlineOps`: a failed write, or sent operations */
586
627
  private storeDirty;
587
628
  /** The calls of the queue store, one at a time */
@@ -1134,6 +1175,30 @@ export declare class HybridStorage<T> implements CollectionStorage<T> {
1134
1175
  * gets the change at the end.
1135
1176
  */
1136
1177
  private pushQueue;
1178
+ /**
1179
+ * This method tells if the remote refused a write: `too-large`, `refused`, or undefined for another error. A conflict
1180
+ * and an error of the queue store are not a refusal.
1181
+ */
1182
+ private refusalOf;
1183
+ /**
1184
+ * This method gives the run of queued operations at the head of the queue that one send takes (roadmap CLI-121). The
1185
+ * run is the head operation alone when `pushBatch` is not set, or when the head cannot join a merged send.
1186
+ */
1187
+ private pushRun;
1188
+ /** This method gives the batches within the caps of `pushBatch` of the head operation, or the head alone. */
1189
+ private chunksOfHead;
1190
+ /** This method gives the cap of ids of one send: `pushBatch.maxItems`, or the lower cap that an error of `isTooLarge` set. */
1191
+ private maxItemsOf;
1192
+ /**
1193
+ * This method lowers the cap of ids of each later send after an error of `isTooLarge` for a send of `ids` ids (roadmap
1194
+ * CLI-121). With a capacity of `capacityOf`, the cap is ids × capacity / units, else half of the ids. It is false when
1195
+ * `pushBatch` is not set or the send had one id: then the write leaves the queue as before.
1196
+ */
1197
+ private lowerItemCap;
1198
+ /** True when an operation can join a merged send. A delete of one id with a base version cannot: `deleteBatch` sends no base versions. */
1199
+ private canJoinRun;
1200
+ /** The length of the JSON text of the data of an operation. */
1201
+ private sizeOf;
1137
1202
  /**
1138
1203
  * This method ends a queued write that the remote refused (roadmap O67). The local copy of its ids
1139
1204
  * gets the remote values, and the hook `onRefused` gets the refusal. A refused clear asks for a
@@ -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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"}
@@ -49,7 +49,7 @@ import { InMemoryStorage, StorageListeners } from "@procedures/collections";
49
49
  import { queryEntries, queryOptionsProblems, selectorProblems, versionConflictsOf, } from "@procedures/client/query";
50
50
  import { optionalMs, realClock } from "@procedures/client/browser";
51
51
  import { backoffDelay } from "@mark1russell7/service/backoff";
52
- import { MemoryQueueStore, idsOf, singlesOf, withoutId } from "./queue.js";
52
+ import { MemoryQueueStore, chunksOf, idsOf, singlesOf, withoutId } from "./queue.js";
53
53
  import { isSyncState } from "./sync-state.js";
54
54
  const MODES = new Set(["local-only", "write-through", "write-back", "remote-only", "read-only"]);
55
55
  /** True for the modes that keep a local copy and read the remote changes into it. */
@@ -283,8 +283,47 @@ const defaultIsRefusal = (error) => {
283
283
  const code = error?.code;
284
284
  return typeof code === "string" && REFUSAL_CODES.has(code);
285
285
  };
286
+ /** This function gives the caps of a merged send, with the defaults. It throws a `RangeError` for a cap that is not a whole number of 1 or more. */
287
+ function pushBatchOf(batch) {
288
+ const cap = (value, fallback, name) => {
289
+ if (value === undefined)
290
+ return fallback;
291
+ if (!Number.isInteger(value) || value < 1)
292
+ throw new RangeError(`pushBatch.${name} must be a whole number of 1 or more, not ${String(value)}`);
293
+ return value;
294
+ };
295
+ return { maxItems: cap(batch.maxItems, 100, "maxItems"), maxBytes: cap(batch.maxBytes, 1_048_576, "maxBytes") };
296
+ }
297
+ /** This function gives the kind of a write in a merged send: `set` for a set or a set batch, `delete` for a delete or its batch. */
298
+ function mergeKind(op) {
299
+ if (op.type === "set" || op.type === "setBatch")
300
+ return "set";
301
+ if (op.type === "delete" || op.type === "deleteBatch")
302
+ return "delete";
303
+ return undefined;
304
+ }
305
+ /** This function gives one batch with the writes of a run, in their order (roadmap CLI-121). */
306
+ function mergedOperation(run) {
307
+ const timestamp = run[0].timestamp;
308
+ if (mergeKind(run[0]) === "delete")
309
+ return { type: "deleteBatch", data: { ids: run.flatMap(idsOf) }, timestamp };
310
+ const items = run.flatMap((op) => {
311
+ const data = op.data;
312
+ return op.type === "set" ? [[data.id, data.value]] : data.items;
313
+ });
314
+ return { type: "setBatch", data: { items }, timestamp };
315
+ }
286
316
  /** The default of `isTooLarge`: an error with the code `PAYLOAD_TOO_LARGE` (roadmap CLI-108). */
287
317
  const defaultIsTooLarge = (error) => error?.code === "PAYLOAD_TOO_LARGE";
318
+ /** The default of `capacityOf`: the numbers `units` and `capacity` of the metadata of the error, with units over the capacity. */
319
+ const defaultCapacityOf = (error) => {
320
+ const metadata = error?.metadata;
321
+ const units = metadata?.units;
322
+ const capacity = metadata?.capacity;
323
+ if (typeof units !== "number" || typeof capacity !== "number" || !Number.isFinite(units) || !Number.isFinite(capacity))
324
+ return undefined;
325
+ return capacity >= 1 && units > capacity ? { units, capacity } : undefined;
326
+ };
288
327
  /** True when a remote does not know a procedure: an older server without `changes`. */
289
328
  const isNotFound = (error) => typeof error === "object" && error !== null && error.code === "NOT_FOUND";
290
329
  const defaultKeyOf = (item) => {
@@ -525,6 +564,12 @@ export class HybridStorage {
525
564
  offlineOps = [];
526
565
  /** The operations in `offlineOps` that the queue store does not have yet */
527
566
  unpersisted = new Set();
567
+ /** The count of operations at the head of the queue that the push sends at this time: more than 1 for a merged send (roadmap CLI-121) */
568
+ sendingCount = 0;
569
+ /** The length of the JSON text of each queued operation, for the byte cap of a merged send */
570
+ opSizes = new WeakMap();
571
+ /** The cap of ids of one send that an error of `isTooLarge` set, below `pushBatch.maxItems` (roadmap CLI-121) */
572
+ itemCap;
528
573
  /** True when the queue store can differ from `offlineOps`: a failed write, or sent operations */
529
574
  storeDirty = false;
530
575
  /** The calls of the queue store, one at a time */
@@ -672,6 +717,8 @@ export class HybridStorage {
672
717
  isUnavailable: options.isUnavailable ?? defaultIsUnavailable,
673
718
  isRefusal: options.isRefusal ?? defaultIsRefusal,
674
719
  isTooLarge: options.isTooLarge ?? defaultIsTooLarge,
720
+ capacityOf: options.capacityOf ?? defaultCapacityOf,
721
+ ...(options.pushBatch !== undefined && { pushBatch: pushBatchOf(options.pushBatch) }),
675
722
  ...(options.onRefused !== undefined && { onRefused: options.onRefused }),
676
723
  ...(options.onDropped !== undefined && { onDropped: options.onDropped }),
677
724
  };
@@ -2568,6 +2615,8 @@ export class HybridStorage {
2568
2615
  let split = false;
2569
2616
  // The operations whose conflicts this push resolved once (roadmap CLI-16)
2570
2617
  const resolved = new Set();
2618
+ // The operations that go alone: a merged send of them failed (roadmap CLI-121)
2619
+ const alone = new Set();
2571
2620
  try {
2572
2621
  while (this.offlineOps.length > 0) {
2573
2622
  const op = this.offlineOps[0];
@@ -2576,6 +2625,60 @@ export class HybridStorage {
2576
2625
  await this.storeChain;
2577
2626
  continue;
2578
2627
  }
2628
+ const chunks = this.chunksOfHead(op);
2629
+ if (chunks.length > 1) {
2630
+ // A batch over the caps goes as batches within the caps (roadmap CLI-121)
2631
+ if (alone.has(op))
2632
+ for (const chunk of chunks)
2633
+ alone.add(chunk);
2634
+ this.offlineOps.splice(0, 1, ...chunks);
2635
+ split = true;
2636
+ this.storeDirty = true;
2637
+ continue;
2638
+ }
2639
+ const run = this.pushRun(alone);
2640
+ if (run.length > 1) {
2641
+ this.sendingCount = run.length;
2642
+ try {
2643
+ for (const queued of run)
2644
+ this.echoSent(queued);
2645
+ await this.executeOperation(mergedOperation(run));
2646
+ }
2647
+ catch (error) {
2648
+ const conflicts = this.sendsBaseVersions() ? versionConflictsOf(error) : undefined;
2649
+ const refusal = this.refusalOf(error, conflicts);
2650
+ if (refusal === "too-large" && this.lowerItemCap(run.reduce((sum, queued) => sum + idsOf(queued).length, 0), error)) {
2651
+ // The same writes go again in smaller sends
2652
+ this.isOnline = true;
2653
+ continue;
2654
+ }
2655
+ if ((conflicts !== undefined && conflicts.length > 0) || refusal !== undefined) {
2656
+ // Each write of the run goes again alone, so the policy and the hooks get each write as without the merge
2657
+ this.isOnline = true;
2658
+ for (const queued of run)
2659
+ alone.add(queued);
2660
+ continue;
2661
+ }
2662
+ // The run and the later operations stay queued
2663
+ if (conflicts === undefined)
2664
+ this.isOnline = false;
2665
+ throw error;
2666
+ }
2667
+ finally {
2668
+ this.sendingCount = 0;
2669
+ }
2670
+ for (const queued of run)
2671
+ this.noteRemoteWrite(queued);
2672
+ // Remove the operations only after they reached the remote
2673
+ for (const queued of run) {
2674
+ if (this.offlineOps[0] !== queued)
2675
+ break;
2676
+ this.offlineOps.shift();
2677
+ sent++;
2678
+ this.storeDirty = true;
2679
+ }
2680
+ continue;
2681
+ }
2579
2682
  try {
2580
2683
  this.echoSent(op);
2581
2684
  await this.executeOperation(op);
@@ -2596,13 +2699,20 @@ export class HybridStorage {
2596
2699
  }
2597
2700
  continue;
2598
2701
  }
2599
- const tooLarge = conflicts === undefined && !(error instanceof QueueStoreError) && this.options.isTooLarge(error);
2600
- const refused = tooLarge || (conflicts === undefined && !(error instanceof QueueStoreError) && !this.options.isUnavailable(error) && this.options.isRefusal(error));
2601
- if (refused) {
2702
+ const refusal = this.refusalOf(error, conflicts);
2703
+ if (refusal === "too-large" && this.lowerItemCap(idsOf(op).length, error)) {
2704
+ // The batch goes again in smaller batches, not as one write for each id (roadmap CLI-121)
2705
+ this.isOnline = true;
2706
+ continue;
2707
+ }
2708
+ if (refusal !== undefined) {
2602
2709
  this.isOnline = true;
2603
2710
  const singles = singlesOf(op);
2604
2711
  if (singles.length > 1 && this.offlineOps[0] === op) {
2605
2712
  // A batch goes again as one write for each id, so only the bad write leaves the queue (roadmap CLI-108)
2713
+ if (alone.has(op))
2714
+ for (const single of singles)
2715
+ alone.add(single);
2606
2716
  this.offlineOps.splice(0, 1, ...singles);
2607
2717
  split = true;
2608
2718
  this.storeDirty = true;
@@ -2614,7 +2724,7 @@ export class HybridStorage {
2614
2724
  sent++;
2615
2725
  this.storeDirty = true;
2616
2726
  }
2617
- await this.refuseQueued(op, error, tooLarge ? "too-large" : "refused");
2727
+ await this.refuseQueued(op, error, refusal);
2618
2728
  continue;
2619
2729
  }
2620
2730
  // This operation and the later ones stay queued
@@ -2641,6 +2751,93 @@ export class HybridStorage {
2641
2751
  }
2642
2752
  }
2643
2753
  }
2754
+ /**
2755
+ * This method tells if the remote refused a write: `too-large`, `refused`, or undefined for another error. A conflict
2756
+ * and an error of the queue store are not a refusal.
2757
+ */
2758
+ refusalOf(error, conflicts) {
2759
+ if (conflicts !== undefined || error instanceof QueueStoreError)
2760
+ return undefined;
2761
+ if (this.options.isTooLarge(error))
2762
+ return "too-large";
2763
+ return !this.options.isUnavailable(error) && this.options.isRefusal(error) ? "refused" : undefined;
2764
+ }
2765
+ /**
2766
+ * This method gives the run of queued operations at the head of the queue that one send takes (roadmap CLI-121). The
2767
+ * run is the head operation alone when `pushBatch` is not set, or when the head cannot join a merged send.
2768
+ */
2769
+ pushRun(alone) {
2770
+ const head = this.offlineOps[0];
2771
+ const caps = this.options.pushBatch;
2772
+ const kind = mergeKind(head);
2773
+ if (caps === undefined || kind === undefined || alone.has(head) || !this.canJoinRun(head))
2774
+ return [head];
2775
+ const run = [];
2776
+ const ids = new Set();
2777
+ let items = 0;
2778
+ let bytes = 0;
2779
+ for (const op of this.offlineOps) {
2780
+ if (mergeKind(op) !== kind || alone.has(op) || this.unpersisted.has(op) || !this.canJoinRun(op))
2781
+ break;
2782
+ const opIds = idsOf(op);
2783
+ // A second write of an id goes in a later send, so the order of the writes of the id stays
2784
+ if (opIds.some((id) => ids.has(id)))
2785
+ break;
2786
+ const size = this.sizeOf(op);
2787
+ if (run.length > 0 && (items + opIds.length > this.maxItemsOf(caps) || bytes + size > caps.maxBytes))
2788
+ break;
2789
+ run.push(op);
2790
+ for (const id of opIds)
2791
+ ids.add(id);
2792
+ items += opIds.length;
2793
+ bytes += size;
2794
+ }
2795
+ return run;
2796
+ }
2797
+ /** This method gives the batches within the caps of `pushBatch` of the head operation, or the head alone. */
2798
+ chunksOfHead(op) {
2799
+ const caps = this.options.pushBatch;
2800
+ if (caps === undefined || mergeKind(op) === undefined)
2801
+ return [op];
2802
+ const maxItems = this.maxItemsOf(caps);
2803
+ if (idsOf(op).length <= maxItems && this.sizeOf(op) <= caps.maxBytes)
2804
+ return [op];
2805
+ return chunksOf(op, maxItems, caps.maxBytes);
2806
+ }
2807
+ /** This method gives the cap of ids of one send: `pushBatch.maxItems`, or the lower cap that an error of `isTooLarge` set. */
2808
+ maxItemsOf(caps) {
2809
+ return this.itemCap === undefined ? caps.maxItems : Math.min(caps.maxItems, this.itemCap);
2810
+ }
2811
+ /**
2812
+ * This method lowers the cap of ids of each later send after an error of `isTooLarge` for a send of `ids` ids (roadmap
2813
+ * CLI-121). With a capacity of `capacityOf`, the cap is ids × capacity / units, else half of the ids. It is false when
2814
+ * `pushBatch` is not set or the send had one id: then the write leaves the queue as before.
2815
+ */
2816
+ lowerItemCap(ids, error) {
2817
+ if (this.options.pushBatch === undefined || ids <= 1)
2818
+ return false;
2819
+ const capacity = this.options.capacityOf(error);
2820
+ const next = capacity === undefined ? Math.floor(ids / 2) : Math.floor((ids * capacity.capacity) / capacity.units);
2821
+ // Each lower cap is smaller than the refused send, thus the push ends
2822
+ const cap = Math.max(1, Math.min(ids - 1, next));
2823
+ this.itemCap = this.itemCap === undefined ? cap : Math.min(this.itemCap, cap);
2824
+ return true;
2825
+ }
2826
+ /** True when an operation can join a merged send. A delete of one id with a base version cannot: `deleteBatch` sends no base versions. */
2827
+ canJoinRun(op) {
2828
+ if (op.type !== "delete" || !this.sendsBaseVersions())
2829
+ return true;
2830
+ return this.bases.get(op.data.id) === undefined;
2831
+ }
2832
+ /** The length of the JSON text of the data of an operation. */
2833
+ sizeOf(op) {
2834
+ let size = this.opSizes.get(op);
2835
+ if (size === undefined) {
2836
+ size = JSON.stringify(op.data)?.length ?? 0;
2837
+ this.opSizes.set(op, size);
2838
+ }
2839
+ return size;
2840
+ }
2644
2841
  /**
2645
2842
  * This method ends a queued write that the remote refused (roadmap O67). The local copy of its ids
2646
2843
  * gets the remote values, and the hook `onRefused` gets the refusal. A refused clear asks for a
@@ -3077,8 +3274,8 @@ export class HybridStorage {
3077
3274
  const ids = idsOf(queued);
3078
3275
  if (!ids.includes(id) && !ids.includes("*"))
3079
3276
  continue;
3080
- // pushQueue can be sending the first operation now: do not change it
3081
- const sending = index === 0 && this.pushing;
3277
+ // pushQueue can be sending the first operations at this time: do not change them
3278
+ const sending = index < Math.max(1, this.sendingCount) && this.pushing;
3082
3279
  return !sending && (queued.type === "set" || queued.type === "delete") ? index : -1;
3083
3280
  }
3084
3281
  return -1;