@peerbit/shared-log 13.2.24 → 13.2.26

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 (81) hide show
  1. package/dist/src/checked-prune.d.ts +12 -0
  2. package/dist/src/checked-prune.d.ts.map +1 -1
  3. package/dist/src/checked-prune.js +33 -0
  4. package/dist/src/checked-prune.js.map +1 -1
  5. package/dist/src/coordinate-persistence.d.ts +211 -0
  6. package/dist/src/coordinate-persistence.d.ts.map +1 -0
  7. package/dist/src/coordinate-persistence.js +1133 -0
  8. package/dist/src/coordinate-persistence.js.map +1 -0
  9. package/dist/src/errors.d.ts +1 -0
  10. package/dist/src/errors.d.ts.map +1 -1
  11. package/dist/src/errors.js +19 -0
  12. package/dist/src/errors.js.map +1 -1
  13. package/dist/src/index.d.ts +127 -133
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +1400 -4269
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/instance-lifecycle.d.ts +117 -0
  18. package/dist/src/instance-lifecycle.d.ts.map +1 -0
  19. package/dist/src/instance-lifecycle.js +254 -0
  20. package/dist/src/instance-lifecycle.js.map +1 -0
  21. package/dist/src/join-warmup.d.ts +86 -0
  22. package/dist/src/join-warmup.d.ts.map +1 -0
  23. package/dist/src/join-warmup.js +351 -0
  24. package/dist/src/join-warmup.js.map +1 -0
  25. package/dist/src/native-write-through-block-store.d.ts +123 -0
  26. package/dist/src/native-write-through-block-store.d.ts.map +1 -0
  27. package/dist/src/native-write-through-block-store.js +989 -0
  28. package/dist/src/native-write-through-block-store.js.map +1 -0
  29. package/dist/src/peer-session.d.ts +117 -0
  30. package/dist/src/peer-session.d.ts.map +1 -0
  31. package/dist/src/peer-session.js +259 -0
  32. package/dist/src/peer-session.js.map +1 -0
  33. package/dist/src/replication-announcement.d.ts +116 -0
  34. package/dist/src/replication-announcement.d.ts.map +1 -0
  35. package/dist/src/replication-announcement.js +515 -0
  36. package/dist/src/replication-announcement.js.map +1 -0
  37. package/dist/src/replicator-liveness.d.ts +59 -0
  38. package/dist/src/replicator-liveness.d.ts.map +1 -0
  39. package/dist/src/replicator-liveness.js +304 -0
  40. package/dist/src/replicator-liveness.js.map +1 -0
  41. package/dist/src/sync/dispatch-lifecycle.d.ts +48 -0
  42. package/dist/src/sync/dispatch-lifecycle.d.ts.map +1 -0
  43. package/dist/src/sync/dispatch-lifecycle.js +141 -0
  44. package/dist/src/sync/dispatch-lifecycle.js.map +1 -0
  45. package/dist/src/sync/factory.d.ts +29 -0
  46. package/dist/src/sync/factory.d.ts.map +1 -0
  47. package/dist/src/sync/factory.js +87 -0
  48. package/dist/src/sync/factory.js.map +1 -0
  49. package/dist/src/sync/pending-sync-store.d.ts +105 -0
  50. package/dist/src/sync/pending-sync-store.d.ts.map +1 -0
  51. package/dist/src/sync/pending-sync-store.js +877 -0
  52. package/dist/src/sync/pending-sync-store.js.map +1 -0
  53. package/dist/src/sync/rateless-iblt.d.ts +4 -1
  54. package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
  55. package/dist/src/sync/rateless-iblt.js +102 -106
  56. package/dist/src/sync/rateless-iblt.js.map +1 -1
  57. package/dist/src/sync/simple.d.ts +10 -41
  58. package/dist/src/sync/simple.d.ts.map +1 -1
  59. package/dist/src/sync/simple.js +259 -952
  60. package/dist/src/sync/simple.js.map +1 -1
  61. package/dist/src/sync/sync-peer-state.d.ts +16 -0
  62. package/dist/src/sync/sync-peer-state.d.ts.map +1 -0
  63. package/dist/src/sync/sync-peer-state.js +82 -0
  64. package/dist/src/sync/sync-peer-state.js.map +1 -0
  65. package/package.json +12 -12
  66. package/src/checked-prune.ts +35 -0
  67. package/src/coordinate-persistence.ts +1796 -0
  68. package/src/errors.ts +21 -0
  69. package/src/index.ts +4014 -7858
  70. package/src/instance-lifecycle.ts +351 -0
  71. package/src/join-warmup.ts +507 -0
  72. package/src/native-write-through-block-store.ts +1170 -0
  73. package/src/peer-session.ts +336 -0
  74. package/src/replication-announcement.ts +744 -0
  75. package/src/replicator-liveness.ts +439 -0
  76. package/src/sync/dispatch-lifecycle.ts +230 -0
  77. package/src/sync/factory.ts +154 -0
  78. package/src/sync/pending-sync-store.ts +1085 -0
  79. package/src/sync/rateless-iblt.ts +122 -132
  80. package/src/sync/simple.ts +334 -1144
  81. package/src/sync/sync-peer-state.ts +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/sync/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import type { Cache } from "@peerbit/cache";
2
+ import type { PublicSignKey } from "@peerbit/crypto";
3
+ import type { SyncableKey } from "./index.js";
4
+ export declare const QUEUED_SYNC_ALIAS_REFRESH_PENDING: unique symbol;
5
+ export declare const PENDING_SIMPLE_SYNC_KEY_TTL_MS = 60000;
6
+ export type PendingSyncAdmissionReservation = {
7
+ peer: string;
8
+ remaining: number;
9
+ active: boolean;
10
+ released: boolean;
11
+ expiresAt: number;
12
+ identities: Set<SyncableKey>;
13
+ retainedSettled: number;
14
+ };
15
+ export type PendingSyncRecord = {
16
+ kind: "key";
17
+ key: SyncableKey;
18
+ peers: PublicSignKey[];
19
+ claimants: Set<string>;
20
+ claimantIndexes: Map<string, number>;
21
+ rrCursor: number;
22
+ expiresAt: number;
23
+ heapIndex: number;
24
+ };
25
+ type PendingSyncAdmissionExpiryNode = {
26
+ kind: "admission";
27
+ reservation: PendingSyncAdmissionReservation;
28
+ expiresAt: number;
29
+ heapIndex: number;
30
+ };
31
+ type PendingSyncExpiryNode = PendingSyncRecord | PendingSyncAdmissionExpiryNode;
32
+ export type PendingSyncStoreDeps = {
33
+ coordinateToHash: Cache<string>;
34
+ isDispatchEpochCurrent: (peer: string, epoch: unknown) => boolean;
35
+ };
36
+ export declare class PendingSyncStore {
37
+ private readonly deps;
38
+ syncInFlightQueue: Map<SyncableKey, PublicSignKey[]>;
39
+ syncInFlightQueueInverted: Map<string, Set<SyncableKey>>;
40
+ syncInFlightQueueExpiresAt: Map<SyncableKey, number>;
41
+ records: Map<SyncableKey, PendingSyncRecord>;
42
+ pendingSyncExpiryHeap: PendingSyncExpiryNode[];
43
+ syncInFlightQueueExpiryTimer?: ReturnType<typeof setTimeout>;
44
+ pendingSyncAdmissionExpiryNodes: Map<PendingSyncAdmissionReservation, PendingSyncAdmissionExpiryNode>;
45
+ syncInFlightQueuedCoordinates: Set<bigint>;
46
+ syncInFlightQueuedHashByCoordinate: Map<bigint, string>;
47
+ syncInFlightQueuedCoordinatesByHash: Map<string, Set<bigint>>;
48
+ syncInFlightQueuedCoordinateRefreshIterator?: IterableIterator<bigint>;
49
+ pendingSyncClaimCount: number;
50
+ pendingSyncAdmissionCount: number;
51
+ pendingSyncActiveAdmissionReservations: number;
52
+ pendingSyncAdmissionCountByPeer: Map<string, number>;
53
+ pendingSyncAdmissionIdentitiesByPeer: Map<string, Set<SyncableKey>>;
54
+ pendingSyncAdmissionReservations: Set<PendingSyncAdmissionReservation>;
55
+ pendingSyncAdmissionReservationsByPeer: Map<string, Set<PendingSyncAdmissionReservation>>;
56
+ pendingSyncAdmissionReservationsByIdentity: Map<SyncableKey, Set<PendingSyncAdmissionReservation>>;
57
+ syncInFlight: Map<string, Map<SyncableKey, {
58
+ timestamp: number;
59
+ }>>;
60
+ syncInFlightTargetsByKey: Map<SyncableKey, Set<string>>;
61
+ constructor(deps: PendingSyncStoreDeps);
62
+ private hydrateRecordFromQueue;
63
+ getPendingSyncKeyIdentity(key: SyncableKey): SyncableKey;
64
+ private removeQueuedSyncCoordinateAlias;
65
+ private refreshQueuedSyncCoordinateAlias;
66
+ private reconcileQueuedSyncCoordinateAlias;
67
+ refreshQueuedSyncCoordinateAliases(): void;
68
+ getQueuedSyncKeyForAdmission(key: SyncableKey): SyncableKey | typeof QUEUED_SYNC_ALIAS_REFRESH_PENDING | undefined;
69
+ addPendingSyncClaim(key: SyncableKey, from: PublicSignKey, expiresAt?: number): boolean;
70
+ hasPendingSyncClaim(key: SyncableKey, peer: string): boolean;
71
+ filterDispatchablePendingSyncClaims(keys: SyncableKey[], peer: string, epoch: unknown): SyncableKey[];
72
+ getRoundRobinCursor(key: SyncableKey): number;
73
+ setRoundRobinCursor(key: SyncableKey, cursor: number): void;
74
+ reservePendingSyncAdmission(peer: string, identities: SyncableKey[]): PendingSyncAdmissionReservation | undefined;
75
+ private removePendingSyncAdmissionIdentity;
76
+ clearPendingSyncAdmissionIdentity(identity: SyncableKey): void;
77
+ consumePendingSyncAdmission(reservation: PendingSyncAdmissionReservation, identity: SyncableKey): "consumed" | "settled" | "invalid";
78
+ transferPendingSyncAdmissionIdentity(peer: string, identity: SyncableKey): number | undefined;
79
+ invalidatePendingSyncAdmission(reservation?: PendingSyncAdmissionReservation): void;
80
+ releasePendingSyncAdmission(reservation?: PendingSyncAdmissionReservation): void;
81
+ clearPendingSyncAdmissions(peer?: string): void;
82
+ private swapPendingSyncExpiry;
83
+ private pushPendingSyncExpiry;
84
+ private removePendingSyncExpiry;
85
+ movePendingSyncKeyExpiryEarlier(key: SyncableKey, expiresAt: number): void;
86
+ private removePendingSyncAdmissionExpiry;
87
+ expirePendingSyncKeys(now?: number): void;
88
+ clearPendingSyncExpiryTimerIfIdle(): void;
89
+ private schedulePendingSyncKeyExpiry;
90
+ hasSyncProcessState(): boolean;
91
+ clearSyncProcessKey(key: SyncableKey): void;
92
+ removePendingSyncClaim(key: SyncableKey, peer: string): void;
93
+ removeClaimsForPeer(publicKeyHash: string): void;
94
+ removeSyncInFlightTargetKey(peer: string, key: SyncableKey): void;
95
+ setSyncInFlightTargetKey(peer: string, key: SyncableKey, timestamp: number): void;
96
+ clearSyncInFlightTarget(peer: string): void;
97
+ private clearSyncInFlightKey;
98
+ private forEachKnownAlias;
99
+ clearSyncInFlightForPeerHashes(publicKeyHash: string, hashes: string[]): void;
100
+ clearSyncProcess(hash: string): void;
101
+ clearSyncProcesses(hashes: string[]): void;
102
+ clearForClose(): void;
103
+ }
104
+ export {};
105
+ //# sourceMappingURL=pending-sync-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-sync-store.d.ts","sourceRoot":"","sources":["../../../src/sync/pending-sync-store.ts"],"names":[],"mappings":"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"}