@peerbit/document 11.1.1 → 11.2.1

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.
@@ -64,11 +64,26 @@ export type JoiningOnMissedResults = (evt: {
64
64
  /** The peer whose arrival triggered the gap calculation. */
65
65
  peer: PublicSignKey;
66
66
  }) => void | Promise<void>;
67
- export type LateResultsEvent = {
67
+ export type OutOfOrderMode = "drop" | "queue";
68
+ export type LateResultsItem = {
69
+ indexed: WithContext<any>;
70
+ context: types.Context;
71
+ from: PublicSignKey;
72
+ value?: any;
73
+ };
74
+ export type LateResultsEvent<M extends OutOfOrderMode = "drop", Item = LateResultsItem> = {
68
75
  /** Count of items that should have appeared earlier than the current frontier */
69
76
  amount: number;
70
77
  /** If attributable, the peer that produced the late items */
71
78
  peer?: PublicSignKey;
79
+ } & (M extends "queue" ? {
80
+ items: Item[];
81
+ } : {
82
+ items?: undefined;
83
+ });
84
+ export type LateResultsHelpers<M extends OutOfOrderMode = "drop", Item = LateResultsItem> = {
85
+ /** Collect concrete late items if available for the chosen mode */
86
+ collect: () => Promise<M extends "queue" ? Item[] : Item[] | undefined>;
72
87
  };
73
88
  export type WaitBehavior = "block" | "keep-open";
74
89
  export type WaitPolicy = {
@@ -103,7 +118,13 @@ export type QueryOptions<T, I, D, Resolve extends boolean | undefined> = {
103
118
  resolve?: Resolve;
104
119
  signal?: AbortSignal;
105
120
  updates?: UpdateOptions<T, I, Resolve>;
106
- onLateResults?: (evt: LateResultsEvent) => void | Promise<void>;
121
+ outOfOrder?: {
122
+ mode?: "drop";
123
+ handle?: (evt: LateResultsEvent<"drop">, helpers: LateResultsHelpers<"drop">) => void | Promise<void>;
124
+ } | {
125
+ mode: "queue";
126
+ handle?: (evt: LateResultsEvent<"queue">, helpers: LateResultsHelpers<"queue">) => void | Promise<void>;
127
+ };
107
128
  /**
108
129
  * Controls iterator liveness after batches are consumed.
109
130
  * - 'onEmpty' (default): close when no more results
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
@@ -1713,12 +1713,32 @@ let DocumentIndex = (() => {
1713
1713
  if (remoteOptions !== originalRemote) {
1714
1714
  options = Object.assign({}, options, { remote: remoteOptions });
1715
1715
  }
1716
+ const outOfOrderMode = options?.outOfOrder?.mode ?? "drop";
1716
1717
  let resolve = options?.resolve !== false;
1717
- if (!(queryRequestCoerced instanceof types.IterationRequest) &&
1718
- options?.remote &&
1718
+ const wantsReplication = options?.remote &&
1719
1719
  typeof options.remote !== "boolean" &&
1720
- (options.remote.replicate || pushUpdates) &&
1720
+ options.remote.replicate;
1721
+ if (!(queryRequestCoerced instanceof types.IterationRequest) &&
1722
+ pushUpdates) {
1723
+ // Push streaming only works on IterationRequest; reject legacy compat and upgrade other callers.
1724
+ if (this.compatibility !== undefined) {
1725
+ throw new Error("updates.push requires IterationRequest support; not available when compatibility is set");
1726
+ }
1727
+ queryRequestCoerced = new types.IterationRequest({
1728
+ query: queryRequestCoerced.query,
1729
+ sort: queryRequestCoerced.sort,
1730
+ fetch: queryRequestCoerced.fetch,
1731
+ resolve,
1732
+ pushUpdates,
1733
+ mergeUpdates: mergePolicy?.merge ? true : undefined,
1734
+ });
1735
+ resolve =
1736
+ queryRequestCoerced.resolve !== false;
1737
+ }
1738
+ else if (!(queryRequestCoerced instanceof types.IterationRequest) &&
1739
+ wantsReplication &&
1721
1740
  options?.resolve !== false) {
1741
+ // Legacy requests can't carry replicate=true; swap to indexed search so replication intent is preserved.
1722
1742
  if ((queryRequest instanceof types.SearchRequestIndexed === false &&
1723
1743
  this.compatibility == null) ||
1724
1744
  (this.compatibility != null && this.compatibility > 8)) {
@@ -2300,8 +2320,61 @@ let DocumentIndex = (() => {
2300
2320
  let joinListener;
2301
2321
  let fetchedFirstForRemote = undefined;
2302
2322
  let updateDeferred;
2303
- const onLateResults = typeof options?.onLateResults === "function"
2304
- ? options.onLateResults
2323
+ const onLateResultsQueue = options?.outOfOrder?.mode === "queue" &&
2324
+ typeof options?.outOfOrder?.handle === "function"
2325
+ ? options.outOfOrder.handle
2326
+ : undefined;
2327
+ const onLateResultsDrop = options?.outOfOrder?.mode === "queue"
2328
+ ? undefined
2329
+ : typeof options?.outOfOrder?.handle === "function"
2330
+ ? options.outOfOrder.handle
2331
+ : undefined;
2332
+ const normalizeLateItems = (items) => {
2333
+ if (!items)
2334
+ return undefined;
2335
+ return items.map((item) => {
2336
+ const ctx = item.context || item.indexed.__context;
2337
+ let value = (item.value ?? item.indexed);
2338
+ if (value && ctx && value.__context == null) {
2339
+ value.__context = ctx;
2340
+ }
2341
+ if (value && item.indexed && value.__indexed == null) {
2342
+ value.__indexed = item.indexed;
2343
+ }
2344
+ return {
2345
+ indexed: item.indexed,
2346
+ context: ctx,
2347
+ from: item.from,
2348
+ value,
2349
+ };
2350
+ });
2351
+ };
2352
+ const notifyLateResults = onLateResultsQueue || onLateResultsDrop
2353
+ ? (amount, peer, items) => {
2354
+ if (amount <= 0) {
2355
+ return;
2356
+ }
2357
+ unsetDone();
2358
+ const payload = items ? normalizeLateItems(items) : undefined;
2359
+ if (outOfOrderMode === "queue" && onLateResultsQueue) {
2360
+ const normalized = payload ??
2361
+ [];
2362
+ const collector = () => Promise.resolve(normalized);
2363
+ onLateResultsQueue({
2364
+ amount,
2365
+ peer,
2366
+ items: normalized,
2367
+ }, { collect: collector });
2368
+ return;
2369
+ }
2370
+ if (onLateResultsDrop) {
2371
+ const collector = () => Promise.resolve(payload);
2372
+ onLateResultsDrop({
2373
+ amount,
2374
+ peer,
2375
+ }, { collect: collector });
2376
+ }
2377
+ }
2305
2378
  : undefined;
2306
2379
  const runNotify = (reason) => {
2307
2380
  if (!updateCallbacks?.notify) {
@@ -2376,6 +2449,11 @@ let DocumentIndex = (() => {
2376
2449
  });
2377
2450
  return;
2378
2451
  }
2452
+ const collectLateItems = outOfOrderMode !== "drop" && !!notifyLateResults;
2453
+ const lateResults = collectLateItems
2454
+ ? []
2455
+ : undefined;
2456
+ let lateCount = 0;
2379
2457
  for (const result of results.results) {
2380
2458
  const indexKey = indexerTypes.toId(this.indexByResolver(result.value)).primitive;
2381
2459
  if (result instanceof types.ResultValue) {
@@ -2389,15 +2467,25 @@ let DocumentIndex = (() => {
2389
2467
  indexedPlaceholders?.delete(indexKey);
2390
2468
  continue;
2391
2469
  }
2470
+ const indexed = await this.resolveIndexed(result, results.results);
2471
+ const late = isLateResult(indexed);
2472
+ if (late) {
2473
+ lateCount++;
2474
+ lateResults?.push({
2475
+ indexed,
2476
+ context: result.context,
2477
+ from: from,
2478
+ value: result.value,
2479
+ });
2480
+ if (outOfOrderMode === "drop") {
2481
+ visited.add(indexKey);
2482
+ continue; // don't buffer late push results
2483
+ }
2484
+ }
2392
2485
  if (visited.has(indexKey)) {
2393
2486
  continue;
2394
2487
  }
2395
2488
  visited.add(indexKey);
2396
- const indexed = await this.resolveIndexed(result, results.results);
2397
- if (isLateResult(indexed)) {
2398
- onLateResults?.({ amount: 1, peer: from });
2399
- continue;
2400
- }
2401
2489
  buffer.push({
2402
2490
  value: result.value,
2403
2491
  context: result.context,
@@ -2406,15 +2494,25 @@ let DocumentIndex = (() => {
2406
2494
  });
2407
2495
  }
2408
2496
  else {
2497
+ const indexed = coerceWithContext(result.indexed || result.value, result.context);
2498
+ const late = isLateResult(indexed);
2499
+ if (late) {
2500
+ lateCount++;
2501
+ lateResults?.push({
2502
+ indexed,
2503
+ context: result.context,
2504
+ from: from,
2505
+ value: result.value,
2506
+ });
2507
+ if (outOfOrderMode === "drop") {
2508
+ visited.add(indexKey);
2509
+ continue; // don't buffer late push results
2510
+ }
2511
+ }
2409
2512
  if (visited.has(indexKey) && !indexedPlaceholders?.has(indexKey)) {
2410
2513
  continue;
2411
2514
  }
2412
2515
  visited.add(indexKey);
2413
- const indexed = coerceWithContext(result.indexed || result.value, result.context);
2414
- if (isLateResult(indexed)) {
2415
- onLateResults?.({ amount: 1, peer: from });
2416
- continue;
2417
- }
2418
2516
  const placeholder = {
2419
2517
  value: result.value,
2420
2518
  context: result.context,
@@ -2425,6 +2523,9 @@ let DocumentIndex = (() => {
2425
2523
  ensureIndexedPlaceholders().set(indexKey, placeholder);
2426
2524
  }
2427
2525
  }
2526
+ if (lateCount > 0) {
2527
+ notifyLateResults?.(lateCount, from, collectLateItems ? lateResults : undefined);
2528
+ }
2428
2529
  peerBufferMap.set(peerHash, {
2429
2530
  buffer,
2430
2531
  // Prefetched batches should not claim remote pending counts;
@@ -2569,10 +2670,6 @@ let DocumentIndex = (() => {
2569
2670
  continue;
2570
2671
  }
2571
2672
  }
2572
- if (isLateResult(indexedCandidate)) {
2573
- onLateResults?.({ amount: 1 });
2574
- continue;
2575
- }
2576
2673
  const id = indexerTypes.toId(this.indexByResolver(indexedCandidate)).primitive;
2577
2674
  const existingIndexed = indexedPlaceholders?.get(id);
2578
2675
  if (existingIndexed) {
@@ -2587,6 +2684,20 @@ let DocumentIndex = (() => {
2587
2684
  }
2588
2685
  if (visited.has(id))
2589
2686
  continue; // already presented
2687
+ const wasLate = isLateResult(indexedCandidate);
2688
+ if (wasLate) {
2689
+ notifyLateResults?.(1, this.node.identity.publicKey, [
2690
+ {
2691
+ indexed: indexedCandidate,
2692
+ context: added.__context,
2693
+ from: this.node.identity.publicKey,
2694
+ value: resolve ? added : indexedCandidate,
2695
+ },
2696
+ ]);
2697
+ if (outOfOrderMode === "drop") {
2698
+ continue;
2699
+ }
2700
+ }
2590
2701
  visited.add(id);
2591
2702
  const valueForBuffer = resolve
2592
2703
  ? added
@@ -2658,7 +2769,7 @@ let DocumentIndex = (() => {
2658
2769
  fetchedFirstForRemote,
2659
2770
  });
2660
2771
  await fetchPromise;
2661
- if (onLateResults) {
2772
+ if (onLateResultsQueue || onLateResultsDrop) {
2662
2773
  const pending = peerBufferMap.get(hash)?.buffer;
2663
2774
  if (pending && pending.length > 0) {
2664
2775
  if (lastValueInOrder) {
@@ -2666,11 +2777,14 @@ let DocumentIndex = (() => {
2666
2777
  const results = pendingWithLast.sort((a, b) => indexerTypes.extractSortCompare(a.indexed, b.indexed, queryRequestCoerced.sort));
2667
2778
  const lateResults = results.findIndex((x) => x === lastValueInOrder);
2668
2779
  if (lateResults > 0) {
2669
- onLateResults({ amount: lateResults });
2780
+ const lateItems = outOfOrderMode === "queue"
2781
+ ? results.slice(0, Math.min(lateResults, results.length))
2782
+ : undefined;
2783
+ notifyLateResults?.(lateResults, pk, lateItems);
2670
2784
  }
2671
2785
  }
2672
2786
  else {
2673
- onLateResults({ amount: pending.length });
2787
+ notifyLateResults?.(pending.length, pk, outOfOrderMode === "queue" ? pending : undefined);
2674
2788
  }
2675
2789
  }
2676
2790
  }
@@ -2723,11 +2837,11 @@ let DocumentIndex = (() => {
2723
2837
  catch (error) {
2724
2838
  warn("Failed to refresh iterator pending state", error);
2725
2839
  }
2726
- let pendingCount = 0;
2840
+ let total = 0;
2727
2841
  for (const buffer of peerBufferMap.values()) {
2728
- pendingCount += buffer.kept + buffer.buffer.length;
2842
+ total += buffer.kept + buffer.buffer.length;
2729
2843
  }
2730
- return pendingCount;
2844
+ return total;
2731
2845
  },
2732
2846
  all: async () => {
2733
2847
  drain = true;