@peerbit/stream-interface 1.0.10 → 2.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.
- package/lib/esm/index.d.ts +10 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/messages.d.ts +100 -92
- package/lib/esm/messages.js +286 -481
- package/lib/esm/messages.js.map +1 -1
- package/package.json +4 -5
- package/src/index.ts +12 -1
- package/src/messages.ts +300 -552
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
2
2
|
import type { PeerId } from "@libp2p/interface/peer-id";
|
|
3
|
+
import { DataMessage, Message } from "./messages.js";
|
|
3
4
|
export interface PeerEvents {
|
|
4
5
|
"peer:reachable": CustomEvent<PublicSignKey>;
|
|
5
6
|
"peer:unreachable": CustomEvent<PublicSignKey>;
|
|
6
7
|
}
|
|
8
|
+
export interface MessageEvents {
|
|
9
|
+
message: CustomEvent<Message>;
|
|
10
|
+
}
|
|
11
|
+
export interface StreamEvents extends PeerEvents, MessageEvents {
|
|
12
|
+
data: CustomEvent<DataMessage>;
|
|
13
|
+
}
|
|
7
14
|
export * from "./messages.js";
|
|
8
15
|
export interface WaitForPeer {
|
|
9
|
-
waitFor(peer: PeerId | PublicSignKey
|
|
16
|
+
waitFor(peer: PeerId | PublicSignKey, options?: {
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}): Promise<void>;
|
|
10
19
|
}
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,eAAe,CAAC"}
|
package/lib/esm/messages.d.ts
CHANGED
|
@@ -1,133 +1,141 @@
|
|
|
1
1
|
import { Uint8ArrayList } from "uint8arraylist";
|
|
2
2
|
import { PublicSignKey, SignatureWithKey } from "@peerbit/crypto";
|
|
3
|
+
import type { PeerId } from "@libp2p/interface/peer-id";
|
|
4
|
+
export declare const ID_LENGTH = 32;
|
|
3
5
|
/**
|
|
4
6
|
* The default msgID implementation
|
|
5
7
|
* Child class can override this.
|
|
6
8
|
*/
|
|
7
9
|
export declare const getMsgId: (msg: Uint8ArrayList | Uint8Array) => Promise<string>;
|
|
8
|
-
export declare
|
|
9
|
-
|
|
10
|
+
export declare abstract class DeliveryMode {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* when you just want to deliver at paths, but does not expect acknowledgement
|
|
14
|
+
*/
|
|
15
|
+
export declare class SilentDelivery extends DeliveryMode {
|
|
16
|
+
to: string[];
|
|
17
|
+
redundancy: number;
|
|
18
|
+
constructor(properties: {
|
|
19
|
+
to: (string | PublicSignKey | PeerId)[] | Set<string>;
|
|
20
|
+
redundancy: number;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deliver and expect acknowledgement
|
|
25
|
+
*/
|
|
26
|
+
export declare class AcknowledgeDelivery extends DeliveryMode {
|
|
27
|
+
to: string[];
|
|
28
|
+
redundancy: number;
|
|
29
|
+
constructor(properties: {
|
|
30
|
+
to: (string | PublicSignKey | PeerId)[] | Set<string>;
|
|
31
|
+
redundancy: number;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Deliver but with greedy fanout so that we eventually reach our target
|
|
36
|
+
* Expect acknowledgement
|
|
37
|
+
*/
|
|
38
|
+
export declare class SeekDelivery extends DeliveryMode {
|
|
39
|
+
to?: string[];
|
|
40
|
+
redundancy: number;
|
|
41
|
+
constructor(properties: {
|
|
42
|
+
to?: (string | PublicSignKey | PeerId)[] | Set<string>;
|
|
43
|
+
redundancy: number;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export declare class TracedDelivery extends DeliveryMode {
|
|
47
|
+
trace: string[];
|
|
48
|
+
constructor(trace: string[]);
|
|
49
|
+
}
|
|
50
|
+
export declare class AnyWhere extends DeliveryMode {
|
|
51
|
+
constructor();
|
|
52
|
+
}
|
|
53
|
+
export declare class Signatures {
|
|
54
|
+
signatures: SignatureWithKey[];
|
|
55
|
+
constructor(signatures?: SignatureWithKey[]);
|
|
56
|
+
equals(other: Signatures): boolean;
|
|
57
|
+
get publicKeys(): PublicSignKey[];
|
|
58
|
+
}
|
|
59
|
+
declare abstract class PeerInfo {
|
|
60
|
+
}
|
|
61
|
+
export declare class MultiAddrinfo extends PeerInfo {
|
|
62
|
+
multiaddrs: string[];
|
|
63
|
+
constructor(multiaddrs: string[]);
|
|
64
|
+
}
|
|
65
|
+
export declare class MessageHeader<T extends DeliveryMode = DeliveryMode> {
|
|
10
66
|
private _id;
|
|
11
67
|
private _timestamp;
|
|
12
68
|
private _expires;
|
|
13
|
-
|
|
69
|
+
private _origin?;
|
|
70
|
+
mode: T;
|
|
71
|
+
signatures: Signatures | undefined;
|
|
72
|
+
constructor(properties: {
|
|
73
|
+
origin?: MultiAddrinfo;
|
|
14
74
|
expires?: bigint;
|
|
15
75
|
id?: Uint8Array;
|
|
76
|
+
mode: T;
|
|
16
77
|
});
|
|
17
78
|
get id(): Uint8Array;
|
|
18
79
|
get expires(): bigint;
|
|
19
80
|
get timetamp(): bigint;
|
|
81
|
+
get origin(): MultiAddrinfo | undefined;
|
|
20
82
|
equals(other: MessageHeader): boolean;
|
|
21
83
|
verify(): boolean;
|
|
22
84
|
}
|
|
23
|
-
export declare class
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
get publicKeys(): PublicSignKey[];
|
|
28
|
-
hashPublicKeys(): Promise<string>;
|
|
29
|
-
}
|
|
30
|
-
export declare abstract class Message {
|
|
31
|
-
static from(bytes: Uint8ArrayList): DataMessage | Hello | Goodbye | PingPong;
|
|
85
|
+
export declare abstract class Message<T extends DeliveryMode = DeliveryMode> {
|
|
86
|
+
static from(bytes: Uint8ArrayList): DataMessage<SilentDelivery | AcknowledgeDelivery | SeekDelivery | AnyWhere> | ACK | Hello | Goodbye;
|
|
87
|
+
abstract get header(): MessageHeader<T>;
|
|
88
|
+
sign(signer: (bytes: Uint8Array) => Promise<SignatureWithKey>): Promise<this>;
|
|
32
89
|
abstract bytes(): Uint8ArrayList | Uint8Array;
|
|
33
|
-
|
|
34
|
-
|
|
90
|
+
_verified: boolean;
|
|
91
|
+
verify(expectSignatures: boolean): Promise<boolean>;
|
|
35
92
|
}
|
|
36
|
-
export declare class DataMessage extends Message {
|
|
93
|
+
export declare class DataMessage<T extends SilentDelivery | SeekDelivery | AcknowledgeDelivery | AnyWhere = SilentDelivery | SeekDelivery | AcknowledgeDelivery | AnyWhere> extends Message<T> {
|
|
37
94
|
private _header;
|
|
38
|
-
private
|
|
39
|
-
private _signatures;
|
|
40
|
-
private _data;
|
|
95
|
+
private _data?;
|
|
41
96
|
constructor(properties: {
|
|
42
|
-
header
|
|
43
|
-
|
|
44
|
-
data: Uint8Array;
|
|
45
|
-
signatures?: Signatures;
|
|
97
|
+
header: MessageHeader<T>;
|
|
98
|
+
data?: Uint8Array;
|
|
46
99
|
});
|
|
47
100
|
get id(): Uint8Array;
|
|
48
|
-
get
|
|
49
|
-
get
|
|
50
|
-
get to(): string[];
|
|
51
|
-
set to(to: string[]);
|
|
52
|
-
get sender(): PublicSignKey;
|
|
53
|
-
get data(): Uint8Array;
|
|
54
|
-
_serialized: Uint8Array | undefined;
|
|
55
|
-
get serialized(): Uint8Array | undefined;
|
|
56
|
-
_prefix: Uint8Array | undefined;
|
|
57
|
-
get prefix(): Uint8Array;
|
|
58
|
-
createPrefix(): Promise<Uint8Array>;
|
|
59
|
-
getSuffix(iteration: number): Uint8Array;
|
|
60
|
-
sign(sign: (bytes: Uint8Array) => Promise<SignatureWithKey>): Promise<this>;
|
|
61
|
-
verify(expectSignatures: boolean): Promise<boolean>;
|
|
101
|
+
get header(): MessageHeader<T>;
|
|
102
|
+
get data(): Uint8Array | undefined;
|
|
62
103
|
/** Manually ser/der for performance gains */
|
|
63
104
|
bytes(): Uint8Array;
|
|
64
105
|
static from(bytes: Uint8ArrayList): DataMessage;
|
|
65
|
-
equals(other: Message): boolean;
|
|
66
106
|
}
|
|
67
|
-
export declare class
|
|
68
|
-
|
|
69
|
-
|
|
107
|
+
export declare class ACK extends Message {
|
|
108
|
+
header: MessageHeader<TracedDelivery>;
|
|
109
|
+
messageIdToAcknowledge: Uint8Array;
|
|
110
|
+
seenCounter: number;
|
|
111
|
+
constructor(properties: {
|
|
112
|
+
messageIdToAcknowledge: Uint8Array;
|
|
113
|
+
seenCounter: number;
|
|
114
|
+
header: MessageHeader<TracedDelivery>;
|
|
115
|
+
});
|
|
116
|
+
get id(): Uint8Array;
|
|
117
|
+
bytes(): Uint8Array;
|
|
118
|
+
static from(bytes: Uint8ArrayList): ACK;
|
|
70
119
|
}
|
|
71
120
|
export declare class Hello extends Message {
|
|
72
121
|
header: MessageHeader;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
signatures: Signatures;
|
|
77
|
-
constructor(options?: {
|
|
78
|
-
multiaddrs?: string[];
|
|
79
|
-
data?: Uint8Array;
|
|
122
|
+
joined: string[];
|
|
123
|
+
constructor(properties: {
|
|
124
|
+
joined: string[];
|
|
80
125
|
});
|
|
81
|
-
get
|
|
126
|
+
get id(): Uint8Array;
|
|
82
127
|
bytes(): Uint8Array;
|
|
83
128
|
static from(bytes: Uint8ArrayList): Hello;
|
|
84
|
-
_prefix: Uint8Array | undefined;
|
|
85
|
-
get prefix(): Uint8Array;
|
|
86
|
-
createPrefix(): Promise<Uint8Array>;
|
|
87
|
-
getSuffix(iteration: number): Uint8Array[];
|
|
88
|
-
sign(sign: (bytes: Uint8Array) => Promise<SignatureWithKey>): Promise<this>;
|
|
89
|
-
verify(expectSignatures: boolean): Promise<boolean>;
|
|
90
|
-
equals(other: Message): boolean;
|
|
91
129
|
}
|
|
92
130
|
export declare class Goodbye extends Message {
|
|
93
|
-
header: MessageHeader
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
header?: MessageHeader;
|
|
99
|
-
data?: Uint8Array;
|
|
100
|
-
early?: boolean;
|
|
131
|
+
header: MessageHeader<SilentDelivery>;
|
|
132
|
+
leaving: string[];
|
|
133
|
+
constructor(properties: {
|
|
134
|
+
leaving: string[];
|
|
135
|
+
header: MessageHeader<SilentDelivery>;
|
|
101
136
|
});
|
|
102
|
-
get
|
|
137
|
+
get id(): Uint8Array;
|
|
103
138
|
bytes(): Uint8Array;
|
|
104
139
|
static from(bytes: Uint8ArrayList): Goodbye;
|
|
105
|
-
_prefix: Uint8Array | undefined;
|
|
106
|
-
get prefix(): Uint8Array;
|
|
107
|
-
createPrefix(): Promise<Uint8Array>;
|
|
108
|
-
getSuffix(iteration: number): Uint8Array;
|
|
109
|
-
sign(sign: (bytes: Uint8Array) => Promise<SignatureWithKey>): Promise<this>;
|
|
110
|
-
verify(expectSignatures: boolean): Promise<boolean>;
|
|
111
|
-
equals(other: Message): boolean;
|
|
112
|
-
}
|
|
113
|
-
export declare abstract class PingPong extends Message {
|
|
114
|
-
static from(bytes: Uint8ArrayList): PingPong;
|
|
115
|
-
bytes(): Uint8ArrayList | Uint8Array;
|
|
116
|
-
verify(_expectSignatures: boolean): Promise<boolean>;
|
|
117
|
-
abstract get pingBytes(): Uint8Array;
|
|
118
|
-
}
|
|
119
|
-
export declare class Ping extends PingPong {
|
|
120
|
-
pingBytes: Uint8Array;
|
|
121
|
-
constructor();
|
|
122
|
-
equals(other: Message): boolean;
|
|
123
|
-
}
|
|
124
|
-
export declare class Pong extends PingPong {
|
|
125
|
-
pingBytes: Uint8Array;
|
|
126
|
-
constructor(pingBytes: Uint8Array);
|
|
127
|
-
equals(other: Message): boolean;
|
|
128
|
-
}
|
|
129
|
-
export declare class Connections {
|
|
130
|
-
connections: [string, string][];
|
|
131
|
-
constructor(connections: [string, string][]);
|
|
132
|
-
equals(other: Connections): boolean;
|
|
133
140
|
}
|
|
141
|
+
export {};
|