@welshman/store 0.5.4 → 0.6.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.
- package/dist/lib/src/Tools.d.ts +15 -0
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js +22 -0
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/adapter.d.ts +47 -0
- package/dist/net/src/adapter.d.ts.map +1 -0
- package/dist/net/src/adapter.js +126 -0
- package/dist/net/src/adapter.js.map +1 -0
- package/dist/net/src/auth.d.ts +40 -0
- package/dist/net/src/auth.d.ts.map +1 -0
- package/dist/net/src/auth.js +118 -0
- package/dist/net/src/auth.js.map +1 -0
- package/dist/net/src/context.d.ts +13 -0
- package/dist/net/src/context.d.ts.map +1 -0
- package/dist/net/src/context.js +10 -0
- package/dist/net/src/context.js.map +1 -0
- package/dist/net/src/diff.d.ts +56 -0
- package/dist/net/src/diff.d.ts.map +1 -0
- package/dist/net/src/diff.js +151 -0
- package/dist/net/src/diff.js.map +1 -0
- package/dist/net/src/index.d.ts +15 -0
- package/dist/net/src/index.d.ts.map +1 -0
- package/dist/net/src/index.js +15 -0
- package/dist/net/src/index.js.map +1 -0
- package/dist/net/src/message.d.ts +60 -0
- package/dist/net/src/message.d.ts.map +1 -0
- package/dist/net/src/message.js +35 -0
- package/dist/net/src/message.js.map +1 -0
- package/dist/net/src/negentropy.d.ts +48 -0
- package/dist/net/src/negentropy.d.ts.map +1 -0
- package/dist/net/src/negentropy.js +535 -0
- package/dist/net/src/negentropy.js.map +1 -0
- package/dist/net/src/policy.d.ts +41 -0
- package/dist/net/src/policy.d.ts.map +1 -0
- package/dist/net/src/policy.js +168 -0
- package/dist/net/src/policy.js.map +1 -0
- package/dist/net/src/pool.d.ts +21 -0
- package/dist/net/src/pool.d.ts.map +1 -0
- package/dist/net/src/pool.js +67 -0
- package/dist/net/src/pool.js.map +1 -0
- package/dist/net/src/publish.d.ts +45 -0
- package/dist/net/src/publish.d.ts.map +1 -0
- package/dist/net/src/publish.js +91 -0
- package/dist/net/src/publish.js.map +1 -0
- package/dist/{relay → net}/src/repository.d.ts +23 -24
- package/dist/net/src/repository.d.ts.map +1 -0
- package/dist/{relay → net}/src/repository.js +8 -19
- package/dist/net/src/repository.js.map +1 -0
- package/dist/net/src/request.d.ts +59 -0
- package/dist/net/src/request.d.ts.map +1 -0
- package/dist/net/src/request.js +202 -0
- package/dist/net/src/request.js.map +1 -0
- package/dist/net/src/socket.d.ts +43 -0
- package/dist/net/src/socket.d.ts.map +1 -0
- package/dist/net/src/socket.js +117 -0
- package/dist/net/src/socket.js.map +1 -0
- package/dist/net/src/tracker.d.ts +16 -0
- package/dist/net/src/tracker.d.ts.map +1 -0
- package/dist/net/src/tracker.js +63 -0
- package/dist/net/src/tracker.js.map +1 -0
- package/dist/net/src/util.d.ts +2 -0
- package/dist/net/src/util.d.ts.map +1 -0
- package/dist/net/src/util.js +2 -0
- package/dist/net/src/util.js.map +1 -0
- package/dist/net/src/wrapManager.d.ts +36 -0
- package/dist/net/src/wrapManager.d.ts.map +1 -0
- package/dist/net/src/wrapManager.js +90 -0
- package/dist/net/src/wrapManager.js.map +1 -0
- package/dist/store/src/repository.d.ts +1 -1
- package/dist/store/src/repository.d.ts.map +1 -1
- package/dist/store/src/repository.js.map +1 -1
- package/dist/util/src/Events.d.ts +0 -8
- package/dist/util/src/Events.d.ts.map +1 -1
- package/dist/util/src/Events.js +0 -4
- package/dist/util/src/Events.js.map +1 -1
- package/dist/util/src/Filters.d.ts.map +1 -1
- package/dist/util/src/Filters.js +0 -3
- package/dist/util/src/Filters.js.map +1 -1
- package/dist/util/src/Kinds.d.ts +5 -0
- package/dist/util/src/Kinds.d.ts.map +1 -1
- package/dist/util/src/Kinds.js +5 -0
- package/dist/util/src/Kinds.js.map +1 -1
- package/package.json +4 -4
- package/dist/relay/src/index.d.ts +0 -3
- package/dist/relay/src/index.d.ts.map +0 -1
- package/dist/relay/src/index.js +0 -3
- package/dist/relay/src/index.js.map +0 -1
- package/dist/relay/src/relay.d.ts +0 -13
- package/dist/relay/src/relay.d.ts.map +0 -1
- package/dist/relay/src/relay.js +0 -48
- package/dist/relay/src/relay.js.map +0 -1
- package/dist/relay/src/repository.d.ts.map +0 -1
- package/dist/relay/src/repository.js.map +0 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import EventEmitter from "events";
|
|
2
|
+
import { on, poll, call, tryCatch } from "@welshman/lib";
|
|
3
|
+
import { makeRelayAuth } from "@welshman/util";
|
|
4
|
+
import { isRelayAuth, isClientAuth, isRelayOk } from "./message.js";
|
|
5
|
+
import { SocketStatus, SocketEvent } from "./socket.js";
|
|
6
|
+
export var AuthStatus;
|
|
7
|
+
(function (AuthStatus) {
|
|
8
|
+
AuthStatus["None"] = "none";
|
|
9
|
+
AuthStatus["Requested"] = "requested";
|
|
10
|
+
AuthStatus["PendingSignature"] = "pending_signature";
|
|
11
|
+
AuthStatus["DeniedSignature"] = "denied_signature";
|
|
12
|
+
AuthStatus["PendingResponse"] = "pending_response";
|
|
13
|
+
AuthStatus["Forbidden"] = "forbidden";
|
|
14
|
+
AuthStatus["Ok"] = "ok";
|
|
15
|
+
})(AuthStatus || (AuthStatus = {}));
|
|
16
|
+
export var AuthStateEvent;
|
|
17
|
+
(function (AuthStateEvent) {
|
|
18
|
+
AuthStateEvent["Status"] = "auth:event:status";
|
|
19
|
+
})(AuthStateEvent || (AuthStateEvent = {}));
|
|
20
|
+
export class AuthState extends EventEmitter {
|
|
21
|
+
socket;
|
|
22
|
+
challenge;
|
|
23
|
+
request;
|
|
24
|
+
details;
|
|
25
|
+
status = AuthStatus.None;
|
|
26
|
+
_unsubscribers = [];
|
|
27
|
+
constructor(socket) {
|
|
28
|
+
super();
|
|
29
|
+
this.socket = socket;
|
|
30
|
+
this._unsubscribers.push(on(socket, SocketEvent.Receive, (message) => {
|
|
31
|
+
if (isRelayOk(message)) {
|
|
32
|
+
const [_, id, ok, details] = message;
|
|
33
|
+
if (id === this.request) {
|
|
34
|
+
this.details = details;
|
|
35
|
+
if (ok) {
|
|
36
|
+
this.setStatus(AuthStatus.Ok);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.setStatus(AuthStatus.Forbidden);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (isRelayAuth(message)) {
|
|
44
|
+
const [_, challenge] = message;
|
|
45
|
+
// Sometimes relays send the same challenge multiple times, no need to
|
|
46
|
+
// respond to it twice
|
|
47
|
+
if (challenge !== this.challenge) {
|
|
48
|
+
this.challenge = challenge;
|
|
49
|
+
this.request = undefined;
|
|
50
|
+
this.details = undefined;
|
|
51
|
+
this.setStatus(AuthStatus.Requested);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}), on(socket, SocketEvent.Sending, (message) => {
|
|
55
|
+
if (isClientAuth(message)) {
|
|
56
|
+
this.setStatus(AuthStatus.PendingResponse);
|
|
57
|
+
}
|
|
58
|
+
}), on(socket, SocketEvent.Status, (status) => {
|
|
59
|
+
if (status === SocketStatus.Closed || status === SocketStatus.Error) {
|
|
60
|
+
this.challenge = undefined;
|
|
61
|
+
this.request = undefined;
|
|
62
|
+
this.details = undefined;
|
|
63
|
+
this.setStatus(AuthStatus.None);
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
setStatus(status) {
|
|
68
|
+
this.status = status;
|
|
69
|
+
this.emit(AuthStateEvent.Status, status);
|
|
70
|
+
}
|
|
71
|
+
async doAuth(sign) {
|
|
72
|
+
if (!this.challenge) {
|
|
73
|
+
throw new Error("Attempted to authenticate with no challenge");
|
|
74
|
+
}
|
|
75
|
+
if (this.status !== AuthStatus.Requested) {
|
|
76
|
+
throw new Error(`Attempted to authenticate when auth is already ${this.status}`);
|
|
77
|
+
}
|
|
78
|
+
this.setStatus(AuthStatus.PendingSignature);
|
|
79
|
+
const template = makeRelayAuth(this.socket.url, this.challenge);
|
|
80
|
+
const event = await tryCatch(() => sign(template));
|
|
81
|
+
if (event) {
|
|
82
|
+
this.request = event.id;
|
|
83
|
+
this.socket.send(["AUTH", event]);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.setStatus(AuthStatus.DeniedSignature);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async attemptAuth(sign) {
|
|
90
|
+
this.socket.attemptToOpen();
|
|
91
|
+
if (![AuthStatus.Forbidden, AuthStatus.Ok].includes(this.status)) {
|
|
92
|
+
await poll({
|
|
93
|
+
signal: AbortSignal.timeout(800),
|
|
94
|
+
condition: () => this.status === AuthStatus.Requested,
|
|
95
|
+
});
|
|
96
|
+
if (this.status === AuthStatus.Requested) {
|
|
97
|
+
await this.doAuth(sign);
|
|
98
|
+
}
|
|
99
|
+
await poll({
|
|
100
|
+
signal: AbortSignal.timeout(800),
|
|
101
|
+
condition: () => this.status !== AuthStatus.PendingResponse,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async retryAuth(sign) {
|
|
106
|
+
if (this.challenge) {
|
|
107
|
+
this.request = undefined;
|
|
108
|
+
this.details = undefined;
|
|
109
|
+
this.setStatus(AuthStatus.Requested);
|
|
110
|
+
}
|
|
111
|
+
await this.attemptAuth(sign);
|
|
112
|
+
}
|
|
113
|
+
cleanup() {
|
|
114
|
+
this.removeAllListeners();
|
|
115
|
+
this._unsubscribers.forEach(call);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../net/src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TrustedEvent } from "@welshman/util";
|
|
2
|
+
import { AbstractAdapter } from "./adapter.js";
|
|
3
|
+
import { Repository } from "./repository.js";
|
|
4
|
+
import { Pool } from "./pool.js";
|
|
5
|
+
export type NetContext = {
|
|
6
|
+
pool: Pool;
|
|
7
|
+
repository: Repository;
|
|
8
|
+
isEventValid: (event: TrustedEvent, url: string) => boolean;
|
|
9
|
+
isEventDeleted: (event: TrustedEvent, url: string) => boolean;
|
|
10
|
+
getAdapter?: (url: string, context: NetContext) => AbstractAdapter;
|
|
11
|
+
};
|
|
12
|
+
export declare const netContext: NetContext;
|
|
13
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../net/src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAC,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IAC3D,cAAc,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IAC7D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,eAAe,CAAA;CACnE,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,UAKxB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { verifyEvent } from "@welshman/util";
|
|
2
|
+
import { Repository } from "./repository.js";
|
|
3
|
+
import { Pool } from "./pool.js";
|
|
4
|
+
export const netContext = {
|
|
5
|
+
pool: Pool.get(),
|
|
6
|
+
repository: Repository.get(),
|
|
7
|
+
isEventValid: (event, url) => verifyEvent(event),
|
|
8
|
+
isEventDeleted: (event, url) => netContext.repository.isDeleted(event),
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../net/src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAe,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAU9B,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;IAChB,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE;IAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAChD,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;CACvE,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { SignedEvent, Filter } from "@welshman/util";
|
|
3
|
+
import { AdapterContext, AbstractAdapter } from "./adapter.js";
|
|
4
|
+
export declare enum DifferenceEvent {
|
|
5
|
+
Message = "message",
|
|
6
|
+
Error = "error",
|
|
7
|
+
Close = "close"
|
|
8
|
+
}
|
|
9
|
+
export type DifferenceEvents = {
|
|
10
|
+
[DifferenceEvent.Message]: (payload: {
|
|
11
|
+
have: string[];
|
|
12
|
+
need: string[];
|
|
13
|
+
}, url: string) => void;
|
|
14
|
+
[DifferenceEvent.Error]: (error: string, url: string) => void;
|
|
15
|
+
[DifferenceEvent.Close]: () => void;
|
|
16
|
+
};
|
|
17
|
+
export type DifferenceOptions = {
|
|
18
|
+
relay: string;
|
|
19
|
+
filter: Filter;
|
|
20
|
+
events: SignedEvent[];
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
context?: AdapterContext;
|
|
23
|
+
};
|
|
24
|
+
export declare class Difference extends EventEmitter {
|
|
25
|
+
readonly options: DifferenceOptions;
|
|
26
|
+
have: Set<string>;
|
|
27
|
+
need: Set<string>;
|
|
28
|
+
_id: string;
|
|
29
|
+
_unsubscriber: () => void;
|
|
30
|
+
_adapter: AbstractAdapter;
|
|
31
|
+
_closed: boolean;
|
|
32
|
+
constructor(options: DifferenceOptions);
|
|
33
|
+
close(): void;
|
|
34
|
+
}
|
|
35
|
+
export type DiffOptions = {
|
|
36
|
+
relays: string[];
|
|
37
|
+
filters: Filter[];
|
|
38
|
+
events: SignedEvent[];
|
|
39
|
+
signal?: AbortSignal;
|
|
40
|
+
context?: AdapterContext;
|
|
41
|
+
};
|
|
42
|
+
export type DiffItem = {
|
|
43
|
+
relay: string;
|
|
44
|
+
have: Set<string>;
|
|
45
|
+
need: Set<string>;
|
|
46
|
+
};
|
|
47
|
+
export declare const diff: ({ relays, filters, ...options }: DiffOptions) => Promise<{
|
|
48
|
+
relay: string;
|
|
49
|
+
have: string[];
|
|
50
|
+
need: string[];
|
|
51
|
+
}[]>;
|
|
52
|
+
export type PullOptions = DiffOptions;
|
|
53
|
+
export declare const pull: ({ context, ...options }: PullOptions) => Promise<SignedEvent[]>;
|
|
54
|
+
export type PushOptions = DiffOptions;
|
|
55
|
+
export declare const push: ({ context, events, ...options }: PushOptions) => Promise<void>;
|
|
56
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../net/src/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAQlD,OAAO,EAAa,cAAc,EAAE,eAAe,EAAe,MAAM,cAAc,CAAA;AAKtF,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3F,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,qBAAa,UAAW,SAAQ,YAAY;IAS9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB;IAR/C,IAAI,cAAoB;IACxB,IAAI,cAAoB;IAExB,GAAG,SAAkC;IACrC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,EAAE,eAAe,CAAA;IACzB,OAAO,UAAQ;gBAEM,OAAO,EAAE,iBAAiB;IAgE/C,KAAK;CAUN;AAID,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,IAAI,GAAU,iCAA+B,WAAW;;;;IA4CpE,CAAA;AAID,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AAErC,eAAO,MAAM,IAAI,GAAU,yBAAuB,WAAW,2BAyC5D,CAAA;AAID,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AAErC,eAAO,MAAM,IAAI,GAAU,iCAA+B,WAAW,kBAkBpE,CAAA"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { on, sleep, randomId, groupBy, pushToMapKey, inc, flatten, chunk } from "@welshman/lib";
|
|
3
|
+
import { isRelayNegErr, isRelayNegMsg, RelayMessageType, ClientMessageType, } from "./message.js";
|
|
4
|
+
import { getAdapter, AdapterEvent } from "./adapter.js";
|
|
5
|
+
import { Negentropy, NegentropyStorageVector } from "./negentropy.js";
|
|
6
|
+
import { requestOne } from "./request.js";
|
|
7
|
+
import { publish } from "./publish.js";
|
|
8
|
+
export var DifferenceEvent;
|
|
9
|
+
(function (DifferenceEvent) {
|
|
10
|
+
DifferenceEvent["Message"] = "message";
|
|
11
|
+
DifferenceEvent["Error"] = "error";
|
|
12
|
+
DifferenceEvent["Close"] = "close";
|
|
13
|
+
})(DifferenceEvent || (DifferenceEvent = {}));
|
|
14
|
+
export class Difference extends EventEmitter {
|
|
15
|
+
options;
|
|
16
|
+
have = new Set();
|
|
17
|
+
need = new Set();
|
|
18
|
+
_id = `NEG-${randomId().slice(0, 8)}`;
|
|
19
|
+
_unsubscriber;
|
|
20
|
+
_adapter;
|
|
21
|
+
_closed = false;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
super();
|
|
24
|
+
this.options = options;
|
|
25
|
+
// Listen for abort
|
|
26
|
+
options.signal?.addEventListener("abort", () => this.close());
|
|
27
|
+
// Set up our adapter
|
|
28
|
+
this._adapter = getAdapter(this.options.relay, this.options.context);
|
|
29
|
+
// Set up negentropy
|
|
30
|
+
const storage = new NegentropyStorageVector();
|
|
31
|
+
const neg = new Negentropy(storage, 50_000);
|
|
32
|
+
for (const event of this.options.events) {
|
|
33
|
+
storage.insert(event.created_at, event.id);
|
|
34
|
+
}
|
|
35
|
+
storage.seal();
|
|
36
|
+
// Add listeners
|
|
37
|
+
this._unsubscriber = on(this._adapter, AdapterEvent.Receive, async (message, url) => {
|
|
38
|
+
if (isRelayNegMsg(message)) {
|
|
39
|
+
const [_, negid, msg] = message;
|
|
40
|
+
if (negid === this._id) {
|
|
41
|
+
const [newMsg, have, need] = await neg.reconcile(msg);
|
|
42
|
+
for (const id of have) {
|
|
43
|
+
this.have.add(id);
|
|
44
|
+
}
|
|
45
|
+
for (const id of need) {
|
|
46
|
+
this.need.add(id);
|
|
47
|
+
}
|
|
48
|
+
this.emit(DifferenceEvent.Message, { have, need }, url);
|
|
49
|
+
if (newMsg) {
|
|
50
|
+
this._adapter.send([RelayMessageType.NegMsg, this._id, newMsg]);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.close();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (isRelayNegErr(message)) {
|
|
58
|
+
const [_, negid, msg] = message;
|
|
59
|
+
if (negid === this._id) {
|
|
60
|
+
this.emit(DifferenceEvent.Error, msg, url);
|
|
61
|
+
this.close();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
neg.initiate().then((msg) => {
|
|
66
|
+
this._adapter.send([ClientMessageType.NegOpen, this._id, this.options.filter, msg]);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
close() {
|
|
70
|
+
if (this._closed)
|
|
71
|
+
return;
|
|
72
|
+
this._adapter.send([ClientMessageType.NegClose, this._id]);
|
|
73
|
+
this.emit(DifferenceEvent.Close);
|
|
74
|
+
this.removeAllListeners();
|
|
75
|
+
this._adapter.cleanup();
|
|
76
|
+
this._unsubscriber();
|
|
77
|
+
this._closed = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export const diff = async ({ relays, filters, ...options }) => {
|
|
81
|
+
const diffs = flatten(await Promise.all(relays.flatMap(async (relay) => {
|
|
82
|
+
return await Promise.all(filters.map(async (filter) => new Promise((resolve, reject) => {
|
|
83
|
+
const diff = new Difference({ relay, filter, ...options });
|
|
84
|
+
diff.on(DifferenceEvent.Close, () => {
|
|
85
|
+
resolve({ relay, have: diff.have, need: diff.need });
|
|
86
|
+
});
|
|
87
|
+
diff.on(DifferenceEvent.Error, (message, url) => {
|
|
88
|
+
console.warn(`Negentropy error on ${url}: ${message}`);
|
|
89
|
+
});
|
|
90
|
+
sleep(30_000).then(() => {
|
|
91
|
+
diff.close();
|
|
92
|
+
});
|
|
93
|
+
})));
|
|
94
|
+
})));
|
|
95
|
+
return Array.from(groupBy(diff => diff.relay, diffs).entries()).map(([relay, diffs]) => {
|
|
96
|
+
const have = new Set();
|
|
97
|
+
const need = new Set();
|
|
98
|
+
for (const diff of diffs) {
|
|
99
|
+
for (const id of diff.have) {
|
|
100
|
+
have.add(id);
|
|
101
|
+
}
|
|
102
|
+
for (const id of diff.need) {
|
|
103
|
+
need.add(id);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { relay, have: Array.from(have), need: Array.from(need) };
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
export const pull = async ({ context, ...options }) => {
|
|
110
|
+
const countById = new Map();
|
|
111
|
+
const idsByRelay = new Map();
|
|
112
|
+
for (const { relay, need } of await diff({ context, ...options })) {
|
|
113
|
+
for (const id of need) {
|
|
114
|
+
const count = countById.get(id) || 0;
|
|
115
|
+
// Reduce, but don't completely eliminate duplicates, just in case a relay
|
|
116
|
+
// won't give us what we ask for.
|
|
117
|
+
if (count < 2) {
|
|
118
|
+
pushToMapKey(idsByRelay, relay, id);
|
|
119
|
+
countById.set(id, inc(count));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const result = [];
|
|
124
|
+
await Promise.all(Array.from(idsByRelay.entries()).map(([relay, allIds]) => {
|
|
125
|
+
return Promise.all(chunk(500, allIds).map(ids => new Promise(resolve => requestOne({
|
|
126
|
+
relay,
|
|
127
|
+
context,
|
|
128
|
+
filters: [{ ids }],
|
|
129
|
+
signal: options.signal,
|
|
130
|
+
autoClose: true,
|
|
131
|
+
onClose: resolve,
|
|
132
|
+
onEvent: event => result.push(event),
|
|
133
|
+
}))));
|
|
134
|
+
}));
|
|
135
|
+
return result;
|
|
136
|
+
};
|
|
137
|
+
export const push = async ({ context, events, ...options }) => {
|
|
138
|
+
const relaysById = new Map();
|
|
139
|
+
for (const { relay, have } of await diff({ context, events, ...options })) {
|
|
140
|
+
for (const id of have) {
|
|
141
|
+
pushToMapKey(relaysById, id, relay);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
await Promise.all(events.map(async (event) => {
|
|
145
|
+
const relays = relaysById.get(event.id);
|
|
146
|
+
if (relays) {
|
|
147
|
+
await publish({ event, relays, context, signal: options.signal });
|
|
148
|
+
}
|
|
149
|
+
}));
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../net/src/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./adapter.js";
|
|
2
|
+
export * from "./auth.js";
|
|
3
|
+
export * from "./context.js";
|
|
4
|
+
export * from "./diff.js";
|
|
5
|
+
export * from "./message.js";
|
|
6
|
+
export * from "./negentropy.js";
|
|
7
|
+
export * from "./policy.js";
|
|
8
|
+
export * from "./pool.js";
|
|
9
|
+
export * from "./publish.js";
|
|
10
|
+
export * from "./socket.js";
|
|
11
|
+
export * from "./repository.js";
|
|
12
|
+
export * from "./request.js";
|
|
13
|
+
export * from "./tracker.js";
|
|
14
|
+
export * from "./wrapManager.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../net/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./adapter.js";
|
|
2
|
+
export * from "./auth.js";
|
|
3
|
+
export * from "./context.js";
|
|
4
|
+
export * from "./diff.js";
|
|
5
|
+
export * from "./message.js";
|
|
6
|
+
export * from "./negentropy.js";
|
|
7
|
+
export * from "./policy.js";
|
|
8
|
+
export * from "./pool.js";
|
|
9
|
+
export * from "./publish.js";
|
|
10
|
+
export * from "./socket.js";
|
|
11
|
+
export * from "./repository.js";
|
|
12
|
+
export * from "./request.js";
|
|
13
|
+
export * from "./tracker.js";
|
|
14
|
+
export * from "./wrapManager.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../net/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { SignedEvent, Filter } from "@welshman/util";
|
|
2
|
+
export declare enum RelayMessageType {
|
|
3
|
+
Auth = "AUTH",
|
|
4
|
+
Closed = "CLOSED",
|
|
5
|
+
Eose = "EOSE",
|
|
6
|
+
Event = "EVENT",
|
|
7
|
+
NegErr = "NEG-ERR",
|
|
8
|
+
NegMsg = "NEG-MSG",
|
|
9
|
+
Ok = "OK"
|
|
10
|
+
}
|
|
11
|
+
export type RelayMessage = any[];
|
|
12
|
+
export type RelayAuthPayload = [string];
|
|
13
|
+
export type RelayClosedPayload = [string, string];
|
|
14
|
+
export type RelayEosePayload = [string];
|
|
15
|
+
export type RelayEventPayload = [string, SignedEvent];
|
|
16
|
+
export type RelayNegErrPayload = [string, string];
|
|
17
|
+
export type RelayNegMsgPayload = [string, string];
|
|
18
|
+
export type RelayOkPayload = [string, boolean, string];
|
|
19
|
+
export type RelayAuth = [RelayMessageType.Auth, ...RelayAuthPayload];
|
|
20
|
+
export type RelayClosed = [RelayMessageType.Closed, ...RelayClosedPayload];
|
|
21
|
+
export type RelayEose = [RelayMessageType.Eose, ...RelayEosePayload];
|
|
22
|
+
export type RelayEvent = [RelayMessageType.Event, ...RelayEventPayload];
|
|
23
|
+
export type RelayNegErr = [RelayMessageType.NegErr, ...RelayNegErrPayload];
|
|
24
|
+
export type RelayNegMsg = [RelayMessageType.NegMsg, ...RelayNegMsgPayload];
|
|
25
|
+
export type RelayOk = [RelayMessageType.Ok, ...RelayOkPayload];
|
|
26
|
+
export declare const isRelayAuth: (m: RelayMessage) => m is RelayAuth;
|
|
27
|
+
export declare const isRelayClosed: (m: RelayMessage) => m is RelayClosed;
|
|
28
|
+
export declare const isRelayEose: (m: RelayMessage) => m is RelayEose;
|
|
29
|
+
export declare const isRelayEvent: (m: RelayMessage) => m is RelayEvent;
|
|
30
|
+
export declare const isRelayNegErr: (m: RelayMessage) => m is RelayNegErr;
|
|
31
|
+
export declare const isRelayNegMsg: (m: RelayMessage) => m is RelayNegMsg;
|
|
32
|
+
export declare const isRelayOk: (m: RelayMessage) => m is RelayOk;
|
|
33
|
+
export declare enum ClientMessageType {
|
|
34
|
+
Auth = "AUTH",
|
|
35
|
+
Close = "CLOSE",
|
|
36
|
+
Event = "EVENT",
|
|
37
|
+
NegClose = "NEG-CLOSE",
|
|
38
|
+
NegOpen = "NEG-OPEN",
|
|
39
|
+
Req = "REQ"
|
|
40
|
+
}
|
|
41
|
+
export type ClientMessage = any[];
|
|
42
|
+
export type ClientAuthPayload = [string];
|
|
43
|
+
export type ClientClosePayload = [string];
|
|
44
|
+
export type ClientEventPayload = [SignedEvent];
|
|
45
|
+
export type ClientNegClosePayload = [string];
|
|
46
|
+
export type ClientNegOpenPayload = [string, Filter, string];
|
|
47
|
+
export type ClientReqPayload = [string, Filter];
|
|
48
|
+
export type ClientAuth = [ClientMessageType.Auth, ...ClientAuthPayload];
|
|
49
|
+
export type ClientClose = [ClientMessageType.Close, ...ClientClosePayload];
|
|
50
|
+
export type ClientEvent = [ClientMessageType.Event, ...ClientEventPayload];
|
|
51
|
+
export type ClientNegClose = [ClientMessageType.NegClose, ...ClientNegClosePayload];
|
|
52
|
+
export type ClientNegOpen = [ClientMessageType.NegOpen, ...ClientNegOpenPayload];
|
|
53
|
+
export type ClientReq = [ClientMessageType.Req, ...ClientReqPayload];
|
|
54
|
+
export declare const isClientAuth: (m: ClientMessage) => m is ClientAuth;
|
|
55
|
+
export declare const isClientClose: (m: ClientMessage) => m is ClientClose;
|
|
56
|
+
export declare const isClientEvent: (m: ClientMessage) => m is ClientEvent;
|
|
57
|
+
export declare const isClientNegClose: (m: ClientMessage) => m is ClientNegClose;
|
|
58
|
+
export declare const isClientNegOpen: (m: ClientMessage) => m is ClientNegOpen;
|
|
59
|
+
export declare const isClientReq: (m: ClientMessage) => m is ClientReq;
|
|
60
|
+
//# sourceMappingURL=message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../net/src/message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// relay -> client
|
|
2
|
+
export var RelayMessageType;
|
|
3
|
+
(function (RelayMessageType) {
|
|
4
|
+
RelayMessageType["Auth"] = "AUTH";
|
|
5
|
+
RelayMessageType["Closed"] = "CLOSED";
|
|
6
|
+
RelayMessageType["Eose"] = "EOSE";
|
|
7
|
+
RelayMessageType["Event"] = "EVENT";
|
|
8
|
+
RelayMessageType["NegErr"] = "NEG-ERR";
|
|
9
|
+
RelayMessageType["NegMsg"] = "NEG-MSG";
|
|
10
|
+
RelayMessageType["Ok"] = "OK";
|
|
11
|
+
})(RelayMessageType || (RelayMessageType = {}));
|
|
12
|
+
export const isRelayAuth = (m) => m[0] === RelayMessageType.Auth;
|
|
13
|
+
export const isRelayClosed = (m) => m[0] === RelayMessageType.Closed;
|
|
14
|
+
export const isRelayEose = (m) => m[0] === RelayMessageType.Eose;
|
|
15
|
+
export const isRelayEvent = (m) => m[0] === RelayMessageType.Event;
|
|
16
|
+
export const isRelayNegErr = (m) => m[0] === RelayMessageType.NegErr;
|
|
17
|
+
export const isRelayNegMsg = (m) => m[0] === RelayMessageType.NegMsg;
|
|
18
|
+
export const isRelayOk = (m) => m[0] === RelayMessageType.Ok;
|
|
19
|
+
// client -> relay
|
|
20
|
+
export var ClientMessageType;
|
|
21
|
+
(function (ClientMessageType) {
|
|
22
|
+
ClientMessageType["Auth"] = "AUTH";
|
|
23
|
+
ClientMessageType["Close"] = "CLOSE";
|
|
24
|
+
ClientMessageType["Event"] = "EVENT";
|
|
25
|
+
ClientMessageType["NegClose"] = "NEG-CLOSE";
|
|
26
|
+
ClientMessageType["NegOpen"] = "NEG-OPEN";
|
|
27
|
+
ClientMessageType["Req"] = "REQ";
|
|
28
|
+
})(ClientMessageType || (ClientMessageType = {}));
|
|
29
|
+
export const isClientAuth = (m) => m[0] === ClientMessageType.Auth;
|
|
30
|
+
export const isClientClose = (m) => m[0] === ClientMessageType.Close;
|
|
31
|
+
export const isClientEvent = (m) => m[0] === ClientMessageType.Event;
|
|
32
|
+
export const isClientNegClose = (m) => m[0] === ClientMessageType.NegClose;
|
|
33
|
+
export const isClientNegOpen = (m) => m[0] === ClientMessageType.NegOpen;
|
|
34
|
+
export const isClientReq = (m) => m[0] === ClientMessageType.Req;
|
|
35
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../net/src/message.ts"],"names":[],"mappings":"AAEA,kBAAkB;AAElB,MAAM,CAAN,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,sCAAkB,CAAA;IAClB,sCAAkB,CAAA;IAClB,6BAAS,CAAA;AACX,CAAC,EARW,gBAAgB,KAAhB,gBAAgB,QAQ3B;AAgCD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAe,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAA;AAE9F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAe,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAA;AAEpG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAe,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAA;AAE9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAe,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,KAAK,CAAA;AAEjG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAe,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAA;AAEpG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAe,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAA;AAEpG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAe,EAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,EAAE,CAAA;AAExF,kBAAkB;AAElB,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,oCAAe,CAAA;IACf,oCAAe,CAAA;IACf,2CAAsB,CAAA;IACtB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;AACb,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AA4BD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAgB,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAA;AAElG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAoB,EAAE,CAClE,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAoB,EAAE,CAClE,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAA;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAgB,EAAuB,EAAE,CACxE,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,QAAQ,CAAA;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAgB,EAAsB,EAAE,CACtE,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,OAAO,CAAA;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAgB,EAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,GAAG,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
declare class WrappedBuffer {
|
|
2
|
+
constructor(buffer: any);
|
|
3
|
+
unwrap(): any;
|
|
4
|
+
get capacity(): any;
|
|
5
|
+
extend(buf: any): void;
|
|
6
|
+
shift(): any;
|
|
7
|
+
shiftN(n?: number): any;
|
|
8
|
+
}
|
|
9
|
+
declare class NegentropyStorageVector {
|
|
10
|
+
constructor();
|
|
11
|
+
insert(timestamp: any, id: any): void;
|
|
12
|
+
seal(): void;
|
|
13
|
+
unseal(): void;
|
|
14
|
+
size(): any;
|
|
15
|
+
getItem(i: any): any;
|
|
16
|
+
iterate(begin: any, end: any, cb: any): void;
|
|
17
|
+
findLowerBound(begin: any, end: any, bound: any): any;
|
|
18
|
+
fingerprint(begin: any, end: any): Promise<any>;
|
|
19
|
+
_checkSealed(): void;
|
|
20
|
+
_checkBounds(begin: any, end: any): void;
|
|
21
|
+
_binarySearch(arr: any, first: any, last: any, cmp: any): any;
|
|
22
|
+
}
|
|
23
|
+
declare class Negentropy {
|
|
24
|
+
constructor(storage: any, frameSizeLimit?: number);
|
|
25
|
+
_bound(timestamp: any, id: any): {
|
|
26
|
+
timestamp: any;
|
|
27
|
+
id: any;
|
|
28
|
+
};
|
|
29
|
+
initiate(): Promise<any>;
|
|
30
|
+
setInitiator(): void;
|
|
31
|
+
reconcile(query: any): Promise<any[]>;
|
|
32
|
+
splitRange(lower: any, upper: any, upperBound: any, o: any): Promise<void>;
|
|
33
|
+
_renderOutput(o: any): any;
|
|
34
|
+
exceededFrameSizeLimit(n: any): any;
|
|
35
|
+
decodeTimestampIn(encoded: any): number;
|
|
36
|
+
decodeBound(encoded: any): {
|
|
37
|
+
timestamp: number;
|
|
38
|
+
id: any;
|
|
39
|
+
};
|
|
40
|
+
encodeTimestampOut(timestamp: any): WrappedBuffer;
|
|
41
|
+
encodeBound(key: any): WrappedBuffer;
|
|
42
|
+
getMinimalBound(prev: any, curr: any): {
|
|
43
|
+
timestamp: any;
|
|
44
|
+
id: any;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export { Negentropy, NegentropyStorageVector };
|
|
48
|
+
//# sourceMappingURL=negentropy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negentropy.d.ts","sourceRoot":"","sources":["../../../../net/src/negentropy.ts"],"names":[],"mappings":"AAcA,cAAM,aAAa;gBACL,MAAM,KAAA;IAKlB,MAAM;IAIN,IAAI,QAAQ,QAEX;IAED,MAAM,CAAC,GAAG,KAAA;IAeV,KAAK;IAOL,MAAM,CAAC,CAAC,SAAI;CAMb;AA0GD,cAAM,uBAAuB;;IAM3B,MAAM,CAAC,SAAS,KAAA,EAAE,EAAE,KAAA;IAOpB,IAAI;IAYJ,MAAM;IAIN,IAAI;IAKJ,OAAO,CAAC,CAAC,KAAA;IAMT,OAAO,CAAC,KAAK,KAAA,EAAE,GAAG,KAAA,EAAE,EAAE,KAAA;IAStB,cAAc,CAAC,KAAK,KAAA,EAAE,GAAG,KAAA,EAAE,KAAK,KAAA;IAO1B,WAAW,CAAC,KAAK,KAAA,EAAE,GAAG,KAAA;IAY5B,YAAY;IAIZ,YAAY,CAAC,KAAK,KAAA,EAAE,GAAG,KAAA;IAIvB,aAAa,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA,EAAE,GAAG,KAAA;CAkBpC;AAED,cAAM,UAAU;gBACF,OAAO,KAAA,EAAE,cAAc,SAAI;IAUvC,MAAM,CAAC,SAAS,KAAA,EAAE,EAAE,KAAA;;;;IAId,QAAQ;IAYd,YAAY;IAIN,SAAS,CAAC,KAAK,KAAA;IA2If,UAAU,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,UAAU,KAAA,EAAE,CAAC,KAAA;IA8C5C,aAAa,CAAC,CAAC,KAAA;IAMf,sBAAsB,CAAC,CAAC,KAAA;IAMxB,iBAAiB,CAAC,OAAO,KAAA;IAYzB,WAAW,CAAC,OAAO,KAAA;;;;IAUnB,kBAAkB,CAAC,SAAS,KAAA;IAY5B,WAAW,CAAC,GAAG,KAAA;IAUf,eAAe,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA;;;;CAgB3B;AAqED,OAAO,EAAC,UAAU,EAAE,uBAAuB,EAAC,CAAA"}
|