@peerbit/shared-log 4.0.6 → 4.0.7
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/lib/esm/exchange-heads.d.ts +2 -2
- package/lib/esm/exchange-heads.js +12 -10
- package/lib/esm/exchange-heads.js.map +1 -1
- package/lib/esm/index.d.ts +8 -3
- package/lib/esm/index.js +199 -131
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/pid.d.ts +1 -0
- package/lib/esm/pid.js +43 -12
- package/lib/esm/pid.js.map +1 -1
- package/lib/esm/replication.d.ts +3 -1
- package/lib/esm/replication.js +2 -2
- package/lib/esm/replication.js.map +1 -1
- package/lib/esm/role.d.ts +4 -0
- package/lib/esm/role.js +18 -6
- package/lib/esm/role.js.map +1 -1
- package/package.json +7 -7
- package/src/exchange-heads.ts +4 -2
- package/src/index.ts +279 -172
- package/src/pid.ts +51 -14
- package/src/replication.ts +2 -3
- package/src/role.ts +21 -3
|
@@ -28,13 +28,13 @@ export declare class RequestHeadsMessage extends TransportMessage {
|
|
|
28
28
|
address: string;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
export declare class
|
|
31
|
+
export declare class RequestIPrune extends TransportMessage {
|
|
32
32
|
hashes: string[];
|
|
33
33
|
constructor(props: {
|
|
34
34
|
hashes: string[];
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
|
-
export declare class
|
|
37
|
+
export declare class ResponseIPrune extends TransportMessage {
|
|
38
38
|
hashes: string[];
|
|
39
39
|
constructor(props: {
|
|
40
40
|
hashes: string[];
|
|
@@ -76,7 +76,8 @@ RequestHeadsMessage = __decorate([
|
|
|
76
76
|
__metadata("design:paramtypes", [Object])
|
|
77
77
|
], RequestHeadsMessage);
|
|
78
78
|
export { RequestHeadsMessage };
|
|
79
|
-
let
|
|
79
|
+
let RequestIPrune = class RequestIPrune extends TransportMessage {
|
|
80
|
+
// Hashes which I want to prune
|
|
80
81
|
hashes;
|
|
81
82
|
constructor(props) {
|
|
82
83
|
super();
|
|
@@ -86,13 +87,14 @@ let RequestIHave = class RequestIHave extends TransportMessage {
|
|
|
86
87
|
__decorate([
|
|
87
88
|
field({ type: vec("string") }),
|
|
88
89
|
__metadata("design:type", Array)
|
|
89
|
-
],
|
|
90
|
-
|
|
90
|
+
], RequestIPrune.prototype, "hashes", void 0);
|
|
91
|
+
RequestIPrune = __decorate([
|
|
91
92
|
variant([0, 2]),
|
|
92
93
|
__metadata("design:paramtypes", [Object])
|
|
93
|
-
],
|
|
94
|
-
export {
|
|
95
|
-
let
|
|
94
|
+
], RequestIPrune);
|
|
95
|
+
export { RequestIPrune };
|
|
96
|
+
let ResponseIPrune = class ResponseIPrune extends TransportMessage {
|
|
97
|
+
// Hashes I am allowed to prune
|
|
96
98
|
hashes;
|
|
97
99
|
constructor(props) {
|
|
98
100
|
super();
|
|
@@ -102,12 +104,12 @@ let ResponseIHave = class ResponseIHave extends TransportMessage {
|
|
|
102
104
|
__decorate([
|
|
103
105
|
field({ type: vec("string") }),
|
|
104
106
|
__metadata("design:type", Array)
|
|
105
|
-
],
|
|
106
|
-
|
|
107
|
+
], ResponseIPrune.prototype, "hashes", void 0);
|
|
108
|
+
ResponseIPrune = __decorate([
|
|
107
109
|
variant([0, 3]),
|
|
108
110
|
__metadata("design:paramtypes", [Object])
|
|
109
|
-
],
|
|
110
|
-
export {
|
|
111
|
+
], ResponseIPrune);
|
|
112
|
+
export { ResponseIPrune };
|
|
111
113
|
export const createExchangeHeadsMessage = async (log, heads, gidParentCache) => {
|
|
112
114
|
const headsSet = new Set(heads);
|
|
113
115
|
const headsWithRefs = await Promise.all(heads.map(async (head) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange-heads.js","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEtD;;;;GAIG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;IAEzB,KAAK,CAAW;IAGhB,UAAU,CAAa,CAAC,gCAAgC;IAExD,YAAY,UAAuD;QAClE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACzC,CAAC;CACD,CAAA;AATA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;8BAChB,KAAK;4CAAI;AAGhB;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;;iDACL;AALX,aAAa;IADzB,OAAO,CAAC,CAAC,CAAC;;GACE,aAAa,CAWzB;;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAwB,SAAQ,gBAAgB;IAE5D,KAAK,CAAqB;IAG1B,QAAQ,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzC,YAAY,KAAoC;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;CACD,CAAA;AATA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;;mDACV;AAG1B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;8BAC3B,UAAU;sDAAqB;AAL7B,oBAAoB;IADhC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,oBAAoB,CAWhC;;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,gBAAgB;IAExD,OAAO,CAAS;IAEhB,YAAY,KAA0B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sCAAsC;IACvE,CAAC;CACD,CAAA;AAPA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;oDACV;AAFJ,mBAAmB;IAD/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,mBAAmB,CAS/B;;AAGM,IAAM,
|
|
1
|
+
{"version":3,"file":"exchange-heads.js","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import yallist from "yallist";
|
|
|
10
10
|
import { PIDReplicationController, ReplicationErrorFunction } from "./pid.js";
|
|
11
11
|
export type { ReplicationErrorFunction };
|
|
12
12
|
export * from "./replication.js";
|
|
13
|
+
import PQueue from "p-queue";
|
|
13
14
|
export { Observer, Replicator, Role };
|
|
14
15
|
export declare const logger: import("pino").Logger<never>;
|
|
15
16
|
export type ReplicationLimitsOptions = Partial<ReplicationLimits> | {
|
|
@@ -80,8 +81,9 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
|
|
|
80
81
|
});
|
|
81
82
|
get role(): Observer | Replicator;
|
|
82
83
|
get totalParticipation(): number;
|
|
84
|
+
private setupRebalanceDebounceFunction;
|
|
83
85
|
private setupRole;
|
|
84
|
-
updateRole(role: RoleOptions, onRoleChange?: boolean): Promise<
|
|
86
|
+
updateRole(role: RoleOptions, onRoleChange?: boolean): Promise<"added" | "none" | "updated" | "removed">;
|
|
85
87
|
private _updateRole;
|
|
86
88
|
append(data: T, options?: SharedAppendOptions<T> | undefined): Promise<{
|
|
87
89
|
entry: Entry<T>;
|
|
@@ -109,6 +111,7 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
|
|
|
109
111
|
}, numberOfLeaders: number, options?: {
|
|
110
112
|
roleAge?: number;
|
|
111
113
|
}): Promise<string[]>;
|
|
114
|
+
private collectNodesAroundPoint;
|
|
112
115
|
private findLeadersFromUniformNumber;
|
|
113
116
|
/**
|
|
114
117
|
*
|
|
@@ -126,8 +129,10 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
|
|
|
126
129
|
prune(entries: Entry<any>[], options?: {
|
|
127
130
|
timeout?: number;
|
|
128
131
|
unchecked?: boolean;
|
|
129
|
-
}): Promise<any
|
|
130
|
-
|
|
132
|
+
}): Promise<any>[];
|
|
133
|
+
_queue: PQueue;
|
|
134
|
+
distribute(): Promise<void>;
|
|
135
|
+
_distribute(): Promise<false | undefined>;
|
|
131
136
|
_onUnsubscription(evt: CustomEvent<UnsubcriptionEvent>): Promise<void>;
|
|
132
137
|
_onSubscription(evt: CustomEvent<SubscriptionEvent>): Promise<void>;
|
|
133
138
|
replicationController: PIDReplicationController;
|