@peerbit/shared-log 9.2.13 → 10.0.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 (104) hide show
  1. package/dist/benchmark/get-samples.js +190 -64
  2. package/dist/benchmark/get-samples.js.map +1 -1
  3. package/dist/benchmark/index.js +16 -38
  4. package/dist/benchmark/index.js.map +1 -1
  5. package/dist/benchmark/memory/child.js.map +1 -1
  6. package/dist/benchmark/partial-sync.d.ts +3 -0
  7. package/dist/benchmark/partial-sync.d.ts.map +1 -0
  8. package/dist/benchmark/partial-sync.js +121 -0
  9. package/dist/benchmark/partial-sync.js.map +1 -0
  10. package/dist/benchmark/replication-prune.js.map +1 -1
  11. package/dist/benchmark/replication.js.map +1 -1
  12. package/dist/benchmark/to-rebalance.d.ts +2 -0
  13. package/dist/benchmark/to-rebalance.d.ts.map +1 -0
  14. package/dist/benchmark/to-rebalance.js +117 -0
  15. package/dist/benchmark/to-rebalance.js.map +1 -0
  16. package/dist/benchmark/utils.d.ts +24 -0
  17. package/dist/benchmark/utils.d.ts.map +1 -0
  18. package/dist/benchmark/utils.js +47 -0
  19. package/dist/benchmark/utils.js.map +1 -0
  20. package/dist/src/debounce.d.ts +2 -2
  21. package/dist/src/debounce.d.ts.map +1 -1
  22. package/dist/src/debounce.js +17 -47
  23. package/dist/src/debounce.js.map +1 -1
  24. package/dist/src/exchange-heads.d.ts +1 -13
  25. package/dist/src/exchange-heads.d.ts.map +1 -1
  26. package/dist/src/exchange-heads.js +0 -32
  27. package/dist/src/exchange-heads.js.map +1 -1
  28. package/dist/src/index.d.ts +119 -60
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +1116 -762
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/integers.d.ts +22 -0
  33. package/dist/src/integers.d.ts.map +1 -0
  34. package/dist/src/integers.js +76 -0
  35. package/dist/src/integers.js.map +1 -0
  36. package/dist/src/pid.d.ts.map +1 -1
  37. package/dist/src/pid.js +22 -22
  38. package/dist/src/pid.js.map +1 -1
  39. package/dist/src/ranges.d.ts +168 -38
  40. package/dist/src/ranges.d.ts.map +1 -1
  41. package/dist/src/ranges.js +869 -272
  42. package/dist/src/ranges.js.map +1 -1
  43. package/dist/src/replication-domain-hash.d.ts +2 -3
  44. package/dist/src/replication-domain-hash.d.ts.map +1 -1
  45. package/dist/src/replication-domain-hash.js +40 -15
  46. package/dist/src/replication-domain-hash.js.map +1 -1
  47. package/dist/src/replication-domain-time.d.ts +5 -5
  48. package/dist/src/replication-domain-time.d.ts.map +1 -1
  49. package/dist/src/replication-domain-time.js +2 -0
  50. package/dist/src/replication-domain-time.js.map +1 -1
  51. package/dist/src/replication-domain.d.ts +17 -19
  52. package/dist/src/replication-domain.d.ts.map +1 -1
  53. package/dist/src/replication-domain.js +2 -6
  54. package/dist/src/replication-domain.js.map +1 -1
  55. package/dist/src/replication.d.ts +6 -6
  56. package/dist/src/replication.d.ts.map +1 -1
  57. package/dist/src/replication.js +4 -4
  58. package/dist/src/replication.js.map +1 -1
  59. package/dist/src/role.d.ts +3 -6
  60. package/dist/src/role.d.ts.map +1 -1
  61. package/dist/src/role.js +4 -5
  62. package/dist/src/role.js.map +1 -1
  63. package/dist/src/sync/index.d.ts +40 -0
  64. package/dist/src/sync/index.d.ts.map +1 -0
  65. package/dist/src/sync/index.js +2 -0
  66. package/dist/src/sync/index.js.map +1 -0
  67. package/dist/src/sync/rateless-iblt.d.ts +124 -0
  68. package/dist/src/sync/rateless-iblt.d.ts.map +1 -0
  69. package/dist/src/sync/rateless-iblt.js +495 -0
  70. package/dist/src/sync/rateless-iblt.js.map +1 -0
  71. package/dist/src/sync/simple.d.ts +69 -0
  72. package/dist/src/sync/simple.d.ts.map +1 -0
  73. package/dist/src/sync/simple.js +338 -0
  74. package/dist/src/sync/simple.js.map +1 -0
  75. package/dist/src/sync/wasm-init.browser.d.ts +1 -0
  76. package/dist/src/sync/wasm-init.browser.d.ts.map +1 -0
  77. package/dist/src/sync/wasm-init.browser.js +3 -0
  78. package/dist/src/sync/wasm-init.browser.js.map +1 -0
  79. package/dist/src/sync/wasm-init.d.ts +2 -0
  80. package/dist/src/sync/wasm-init.d.ts.map +1 -0
  81. package/dist/src/sync/wasm-init.js +13 -0
  82. package/dist/src/sync/wasm-init.js.map +1 -0
  83. package/dist/src/utils.d.ts +3 -3
  84. package/dist/src/utils.d.ts.map +1 -1
  85. package/dist/src/utils.js +2 -2
  86. package/dist/src/utils.js.map +1 -1
  87. package/package.json +10 -6
  88. package/src/debounce.ts +16 -51
  89. package/src/exchange-heads.ts +1 -23
  90. package/src/index.ts +1532 -1038
  91. package/src/integers.ts +102 -0
  92. package/src/pid.ts +23 -22
  93. package/src/ranges.ts +1204 -413
  94. package/src/replication-domain-hash.ts +43 -18
  95. package/src/replication-domain-time.ts +9 -9
  96. package/src/replication-domain.ts +21 -31
  97. package/src/replication.ts +10 -9
  98. package/src/role.ts +4 -6
  99. package/src/sync/index.ts +51 -0
  100. package/src/sync/rateless-iblt.ts +617 -0
  101. package/src/sync/simple.ts +403 -0
  102. package/src/sync/wasm-init.browser.ts +1 -0
  103. package/src/sync/wasm-init.ts +14 -0
  104. package/src/utils.ts +10 -4
@@ -1,28 +1,30 @@
1
1
  import { PublicSignKey } from "@peerbit/crypto";
2
2
  import { type Index } from "@peerbit/indexer-interface";
3
- import { type AppendOptions, type Change, Entry, Log, type LogEvents, type LogProperties, ShallowEntry, type ShallowOrFullEntry } from "@peerbit/log";
3
+ import { type AppendOptions, type Change, Entry, Log, type LogEvents, type LogProperties, Meta, ShallowEntry, type ShallowOrFullEntry } from "@peerbit/log";
4
4
  import { Program, type ProgramEvents } from "@peerbit/program";
5
5
  import { SubscriptionEvent, UnsubcriptionEvent } from "@peerbit/pubsub-interface";
6
6
  import { RPC, type RequestContext } from "@peerbit/rpc";
7
7
  import { type CPUUsage, CPUUsageIntervalLag } from "./cpu.js";
8
8
  import { type DebouncedAccumulatorMap } from "./debounce.js";
9
+ import { type NumberFromType, type Numbers } from "./integers.js";
9
10
  import { TransportMessage } from "./message.js";
10
11
  import { PIDReplicationController } from "./pid.js";
11
- import { EntryReplicated, ReplicationRange, ReplicationRangeIndexable } from "./ranges.js";
12
+ import { type EntryReplicated, EntryReplicatedU32, EntryReplicatedU64, ReplicationIntent, type ReplicationRangeIndexable, ReplicationRangeMessage, SyncStatus } from "./ranges.js";
12
13
  import { type ReplicationDomainHash, createReplicationDomainHash } from "./replication-domain-hash.js";
13
14
  import { type ReplicationDomainTime, createReplicationDomainTime } from "./replication-domain-time.js";
14
- import { type ExtractDomainArgs, type ReplicationChanges, type ReplicationDomain } from "./replication-domain.js";
15
+ import { type ExtractDomainArgs, type ReplicationChange, type ReplicationChanges, type ReplicationDomain } from "./replication-domain.js";
15
16
  import { AbsoluteReplicas, AddedReplicationSegmentMessage, AllReplicatingSegmentsMessage, type ReplicationLimits } from "./replication.js";
17
+ import type { SynchronizerConstructor, Syncronizer } from "./sync/index.js";
16
18
  export { type ReplicationDomain, type ReplicationDomainHash, type ReplicationDomainTime, createReplicationDomainHash, createReplicationDomainTime, };
17
19
  export { type CPUUsage, CPUUsageIntervalLag };
18
20
  export * from "./replication.js";
19
- export { EntryReplicated, ReplicationRangeIndexable };
21
+ export { type ReplicationRangeIndexable, type EntryReplicated, EntryReplicatedU32, EntryReplicatedU64, };
20
22
  export declare const logger: import("pino").Logger<never>;
21
23
  export type ReplicationLimitsOptions = Partial<ReplicationLimits> | {
22
24
  min?: number;
23
25
  max?: number;
24
26
  };
25
- export type DynamicReplicationOptions = {
27
+ export type DynamicReplicationOptions<R extends "u32" | "u64"> = {
26
28
  limits?: {
27
29
  interval?: number;
28
30
  storage?: number;
@@ -31,23 +33,55 @@ export type DynamicReplicationOptions = {
31
33
  monitor?: CPUUsage;
32
34
  };
33
35
  };
34
- };
36
+ } & ({
37
+ offset: number;
38
+ normalized?: true | undefined;
39
+ } | {
40
+ offset: NumberFromType<R>;
41
+ normalized: false;
42
+ } | {
43
+ offset?: undefined;
44
+ normalized?: undefined;
45
+ });
35
46
  export type FixedReplicationOptions = {
36
47
  id?: Uint8Array;
37
48
  normalized?: boolean;
38
- factor: number | "all" | "right";
49
+ factor: number | bigint | "all" | "right";
39
50
  strict?: boolean;
40
- offset?: number;
51
+ offset?: number | bigint;
52
+ syncStatus?: SyncStatus;
41
53
  };
42
- export type ReplicationOptions = DynamicReplicationOptions | FixedReplicationOptions | FixedReplicationOptions[] | number | boolean;
43
- export type SharedLogOptions<T, D extends ReplicationDomain<any, T>> = {
44
- replicate?: ReplicationOptions;
54
+ export type ReplicationOptions<R extends "u32" | "u64" = any> = DynamicReplicationOptions<R> | FixedReplicationOptions | FixedReplicationOptions[] | number | boolean;
55
+ interface IndexableDomain<R extends "u32" | "u64"> {
56
+ numbers: Numbers<R>;
57
+ constructorEntry: new (properties: {
58
+ coordinates: NumberFromType<R>[];
59
+ hash: string;
60
+ meta: Meta;
61
+ assignedToRangeBoundary: boolean;
62
+ }) => EntryReplicated<R>;
63
+ constructorRange: new (properties: {
64
+ id?: Uint8Array;
65
+ offset: NumberFromType<R>;
66
+ length: NumberFromType<R>;
67
+ mode?: ReplicationIntent;
68
+ timestamp?: bigint;
69
+ } & ({
70
+ publicKeyHash: string;
71
+ } | {
72
+ publicKey: PublicSignKey;
73
+ })) => ReplicationRangeIndexable<R>;
74
+ }
75
+ export type SharedLogOptions<T, D extends ReplicationDomain<any, T, R>, R extends "u32" | "u64" = D extends ReplicationDomain<any, T, infer I> ? I : "u32"> = {
76
+ replicate?: ReplicationOptions<R>;
45
77
  replicas?: ReplicationLimitsOptions;
46
78
  respondToIHaveTimeout?: number;
47
79
  canReplicate?: (publicKey: PublicSignKey) => Promise<boolean> | boolean;
48
- sync?: (entry: ShallowOrFullEntry<T> | EntryReplicated) => boolean;
80
+ sync?: (entry: ShallowOrFullEntry<T> | EntryReplicated<R>) => boolean;
81
+ syncronizer?: SynchronizerConstructor<R>;
49
82
  timeUntilRoleMaturity?: number;
50
83
  waitForReplicatorTimeout?: number;
84
+ waitForPruneDelay?: number;
51
85
  distributionDebounceTime?: number;
52
86
  compatibility?: number;
53
87
  domain?: D;
@@ -55,7 +89,8 @@ export type SharedLogOptions<T, D extends ReplicationDomain<any, T>> = {
55
89
  export declare const DEFAULT_MIN_REPLICAS = 2;
56
90
  export declare const WAIT_FOR_REPLICATOR_TIMEOUT = 9000;
57
91
  export declare const WAIT_FOR_ROLE_MATURITY = 5000;
58
- export type Args<T, D extends ReplicationDomain<any, T> = ReplicationDomainHash> = LogProperties<T> & LogEvents<T> & SharedLogOptions<T, D>;
92
+ export declare const WAIT_FOR_PRUNE_DELAY = 5000;
93
+ export type Args<T, D extends ReplicationDomain<any, T, R>, R extends "u32" | "u64" = D extends ReplicationDomain<any, T, infer I> ? I : "u32"> = LogProperties<T> & LogEvents<T> & SharedLogOptions<T, D, R>;
59
94
  export type SharedAppendOptions<T> = AppendOptions<T> & {
60
95
  replicas?: AbsoluteReplicas | number;
61
96
  replicate?: boolean;
@@ -79,14 +114,16 @@ export interface SharedLogEvents extends ProgramEvents {
79
114
  "replication:change": CustomEvent<ReplicationChangeEvent>;
80
115
  "replicator:mature": CustomEvent<ReplicatorMatureEvent>;
81
116
  }
82
- export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any, T> = ReplicationDomainHash> extends Program<Args<T, D>, SharedLogEvents> {
117
+ export declare class SharedLog<T, D extends ReplicationDomain<any, T, R>, R extends "u32" | "u64" = D extends ReplicationDomain<any, T, infer I> ? I : "u32"> extends Program<Args<T, D, R>, SharedLogEvents> {
83
118
  log: Log<T>;
84
119
  rpc: RPC<TransportMessage, TransportMessage>;
85
120
  private _isReplicating;
86
121
  private _isAdaptiveReplicating;
87
122
  private _replicationRangeIndex;
88
123
  private _entryCoordinatesIndex;
89
- private _gidPeersHistory;
124
+ private coordinateToHash;
125
+ private uniqueReplicators;
126
+ _gidPeersHistory: Map<string, Set<string>>;
90
127
  private _onSubscriptionFn;
91
128
  private _onUnsubscriptionFn;
92
129
  private _isTrustedReplicator?;
@@ -95,27 +132,31 @@ export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any,
95
132
  private _respondToIHaveTimeout;
96
133
  private _pendingDeletes;
97
134
  private _pendingIHave;
98
- private pendingMaturity;
135
+ pendingMaturity: Map<string, Map<string, {
136
+ range: ReplicationChange;
137
+ timeout: ReturnType<typeof setTimeout>;
138
+ }>>;
99
139
  private latestReplicationInfoMessage;
100
140
  private remoteBlocks;
101
141
  private openTime;
102
142
  private oldestOpenTime;
103
143
  private sync?;
104
144
  private rebalanceParticipationDebounced;
105
- pruneDebouncedFn: DebouncedAccumulatorMap<Entry<T> | ShallowEntry | EntryReplicated>;
145
+ pruneDebouncedFn: DebouncedAccumulatorMap<{
146
+ entry: Entry<T> | ShallowEntry | EntryReplicated<R>;
147
+ leaders: Map<string, any>;
148
+ }>;
106
149
  private responseToPruneDebouncedFn;
150
+ private _requestIPruneSent;
151
+ private _requestIPruneResponseReplicatorSet;
107
152
  private replicationChangeDebounceFn;
108
153
  private distributeQueue?;
109
- private syncMoreInterval?;
110
- private syncInFlightQueue;
111
- private syncInFlightQueueInverted;
112
- syncInFlight: Map<string, Map<string, {
113
- timestamp: number;
114
- }>>;
154
+ syncronizer: Syncronizer<R>;
115
155
  replicas: ReplicationLimits;
116
156
  private cpuUsage?;
117
157
  timeUntilRoleMaturity: number;
118
158
  waitForReplicatorTimeout: number;
159
+ waitForPruneDelay: number;
119
160
  distributionDebounceTime: number;
120
161
  replicationController: PIDReplicationController;
121
162
  history: {
@@ -123,6 +164,7 @@ export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any,
123
164
  factor: number;
124
165
  }[];
125
166
  domain: D;
167
+ indexableDomain: IndexableDomain<R>;
126
168
  interval: any;
127
169
  constructor(properties?: {
128
170
  id?: Uint8Array;
@@ -131,31 +173,33 @@ export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any,
131
173
  private get v8Behaviour();
132
174
  private getRole;
133
175
  isReplicating(): Promise<boolean>;
134
- calculateTotalParticipation(): Promise<number>;
135
- countReplicationSegments(): Promise<number>;
136
176
  private setupRebalanceDebounceFunction;
137
177
  private _replicate;
138
- setupDebouncedRebalancing(options?: DynamicReplicationOptions): void;
139
- replicate(rangeOrEntry?: ReplicationOptions | Entry<T> | Entry<T>[], options?: {
178
+ setupDebouncedRebalancing(options?: DynamicReplicationOptions<R>): void;
179
+ replicate(rangeOrEntry?: ReplicationOptions<R> | Entry<T> | Entry<T>[], options?: {
140
180
  reset?: boolean;
141
181
  checkDuplicates?: boolean;
182
+ mergeSegments?: boolean;
142
183
  announce?: (msg: AllReplicatingSegmentsMessage | AddedReplicationSegmentMessage) => void;
143
- }): Promise<ReplicationRangeIndexable[] | undefined>;
144
- unreplicate(rangeOrEntry?: Entry<T> | ReplicationRange): Promise<void>;
184
+ }): Promise<ReplicationRangeIndexable<any>[] | undefined>;
185
+ unreplicate(rangeOrEntry?: Entry<T> | ReplicationRangeMessage<R>): Promise<void>;
145
186
  private removeReplicator;
146
187
  private updateOldestTimestampFromIndex;
147
188
  private removeReplicationRange;
148
189
  private addReplicationRange;
149
- startAnnounceReplicating(range: ReplicationRangeIndexable[], options?: {
190
+ startAnnounceReplicating(range: ReplicationRangeIndexable<R>[], options?: {
191
+ syncStatus?: SyncStatus;
150
192
  reset?: boolean;
151
193
  checkDuplicates?: boolean;
152
194
  announce?: (msg: AllReplicatingSegmentsMessage | AddedReplicationSegmentMessage) => void;
153
195
  }): Promise<void>;
196
+ private removePeerFromGidPeerHistory;
197
+ private addPeersToGidPeerHistory;
154
198
  append(data: T, options?: SharedAppendOptions<T> | undefined): Promise<{
155
199
  entry: Entry<T>;
156
200
  removed: ShallowOrFullEntry<T>[];
157
201
  }>;
158
- open(options?: Args<T, D>): Promise<void>;
202
+ open(options?: Args<T, D, R>): Promise<void>;
159
203
  afterOpen(): Promise<void>;
160
204
  reset(): Promise<void>;
161
205
  pruneOfflineReplicators(): Promise<any[]>;
@@ -174,10 +218,15 @@ export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any,
174
218
  drop(from?: Program): Promise<boolean>;
175
219
  recover(): Promise<void>;
176
220
  _onMessage(msg: TransportMessage, context: RequestContext): Promise<void>;
177
- getMyReplicationSegments(): Promise<ReplicationRangeIndexable[]>;
178
- getMyTotalParticipation(): Promise<number>;
179
- get replicationIndex(): Index<ReplicationRangeIndexable>;
180
- get entryCoordinatesIndex(): Index<EntryReplicated>;
221
+ calculateTotalParticipation(options?: {
222
+ sum?: boolean;
223
+ }): Promise<number>;
224
+ countReplicationSegments(): Promise<number>;
225
+ getAllReplicationSegments(): Promise<ReplicationRangeIndexable<R>[]>;
226
+ getMyReplicationSegments(): Promise<ReplicationRangeIndexable<R>[]>;
227
+ calculateMyTotalParticipation(): Promise<number>;
228
+ get replicationIndex(): Index<ReplicationRangeIndexable<R>>;
229
+ get entryCoordinatesIndex(): Index<EntryReplicated<R>>;
181
230
  /**
182
231
  * TODO improve efficiency
183
232
  */
@@ -186,59 +235,69 @@ export declare class SharedLog<T = Uint8Array, D extends ReplicationDomain<any,
186
235
  join(entries: (string | Entry<T> | ShallowEntry)[], options?: {
187
236
  verifySignatures?: boolean;
188
237
  timeout?: number;
189
- replicate?: boolean;
238
+ replicate?: boolean | {
239
+ mergeSegments?: boolean;
240
+ };
190
241
  }): Promise<void>;
191
- private findLeadersPersist;
192
- isLeader(cursor: number[] | {
193
- entry: ShallowOrFullEntry<any> | EntryReplicated;
242
+ private _waitForReplicators;
243
+ createCoordinates(entry: ShallowOrFullEntry<any> | EntryReplicated<R> | NumberFromType<R>, minReplicas: number): Promise<NumberFromType<R>[]>;
244
+ private getCoordinates;
245
+ private persistCoordinate;
246
+ private deleteCoordinates;
247
+ getDefaultMinRoleAge(): Promise<number>;
248
+ findLeaders(cursors: NumberFromType<R>[], entry: Entry<T> | EntryReplicated<R> | ShallowEntry, options?: {
249
+ roleAge?: number;
250
+ onLeader?: (key: string) => void;
251
+ persist?: {
252
+ prev?: EntryReplicated<R>;
253
+ } | false;
254
+ }): Promise<Map<string, {
255
+ intersecting: boolean;
256
+ }>>;
257
+ isLeader(properties: {
258
+ entry: ShallowOrFullEntry<any> | EntryReplicated<R>;
194
259
  replicas: number;
195
260
  }, options?: {
196
261
  roleAge?: number;
262
+ onLeader?: (key: string) => void;
263
+ persist?: {
264
+ prev?: EntryReplicated<R>;
265
+ } | false;
197
266
  }): Promise<boolean>;
198
- private waitForIsLeader;
199
- findLeaders(cursor: number[] | {
200
- entry: ShallowOrFullEntry<any> | EntryReplicated;
201
- replicas: number;
202
- }, options?: {
267
+ private _findLeaders;
268
+ findLeadersFromEntry(entry: ShallowOrFullEntry<any> | EntryReplicated<R>, replicas: number, options?: {
203
269
  roleAge?: number;
204
270
  }): Promise<Map<string, {
205
271
  intersecting: boolean;
206
272
  }>>;
207
- private groupByLeaders;
208
- private createCoordinates;
209
- private getCoordinates;
210
- private persistCoordinate;
211
- private deleteCoordinates;
212
- getDefaultMinRoleAge(): Promise<number>;
213
- private findLeadersFromU32;
214
273
  isReplicator(entry: Entry<any>, options?: {
215
274
  candidates?: string[];
216
275
  roleAge?: number;
217
276
  }): Promise<boolean>;
218
277
  handleSubscriptionChange(publicKey: PublicSignKey, topics: string[], subscribed: boolean): Promise<void>;
219
- prune(entries: (EntryReplicated | ShallowOrFullEntry<any>)[] | Map<string, EntryReplicated | ShallowOrFullEntry<any>>, options?: {
278
+ private getClampedReplicas;
279
+ prune(entries: Map<string, {
280
+ entry: EntryReplicated<R> | ShallowOrFullEntry<any>;
281
+ leaders: Map<string, unknown> | Set<string>;
282
+ }>, options?: {
220
283
  timeout?: number;
221
284
  unchecked?: boolean;
222
285
  }): Promise<any>[];
223
286
  /**
224
287
  * For debugging
225
288
  */
226
- getPrunable(): Promise<Entry<any>[]>;
227
- getNonPrunable(): Promise<Entry<any>[]>;
289
+ getPrunable(roleAge?: number): Promise<Entry<any>[]>;
290
+ getNonPrunable(roleAge?: number): Promise<Entry<any>[]>;
228
291
  rebalanceAll(options?: {
229
292
  clearCache?: boolean;
230
293
  }): Promise<void>;
231
294
  waitForPruned(): Promise<void>;
232
295
  onReplicationChange(changeOrChanges: ReplicationChanges | ReplicationChanges[]): Promise<false | undefined>;
233
- private requestSync;
234
296
  _onUnsubscription(evt: CustomEvent<UnsubcriptionEvent>): Promise<void>;
235
297
  _onSubscription(evt: CustomEvent<SubscriptionEvent>): Promise<void>;
236
- addToHistory(usedMemory: number, factor: number): Promise<void>;
237
- calculateTrend(): Promise<number>;
238
298
  rebalanceParticipation(): Promise<boolean | undefined>;
239
- getDynamicRange(): Promise<ReplicationRangeIndexable | undefined>;
240
- private clearSyncProcess;
241
- private clearSyncProcessPublicKey;
299
+ private getDynamicRangeOffset;
300
+ getDynamicRange(): Promise<ReplicationRangeIndexable<R> | undefined>;
242
301
  private onEntryAdded;
243
302
  onEntryRemoved(hash: string): void;
244
303
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}