@libp2p/pubsub 1.2.3 → 1.2.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.
@@ -15,10 +15,18 @@ export declare const codes: {
15
15
  * Message expected to have a `seqno`, but doesn't
16
16
  */
17
17
  ERR_MISSING_SEQNO: string;
18
+ /**
19
+ * Message expected to have a `key`, but doesn't
20
+ */
21
+ ERR_MISSING_KEY: string;
18
22
  /**
19
23
  * Message `signature` is invalid
20
24
  */
21
25
  ERR_INVALID_SIGNATURE: string;
26
+ /**
27
+ * Message expected to have a `from`, but doesn't
28
+ */
29
+ ERR_MISSING_FROM: string;
22
30
  /**
23
31
  * Message expected to not have a `from`, but does
24
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK;IAChB;;OAEG;;IAEH;;OAEG;;IAKH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAKH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEJ,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK;IAChB;;OAEG;;IAEH;;OAEG;;IAKH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAKH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEJ,CAAA"}
@@ -16,10 +16,18 @@ export const codes = {
16
16
  * Message expected to have a `seqno`, but doesn't
17
17
  */
18
18
  ERR_MISSING_SEQNO: 'ERR_MISSING_SEQNO',
19
+ /**
20
+ * Message expected to have a `key`, but doesn't
21
+ */
22
+ ERR_MISSING_KEY: 'ERR_MISSING_KEY',
19
23
  /**
20
24
  * Message `signature` is invalid
21
25
  */
22
26
  ERR_INVALID_SIGNATURE: 'ERR_INVALID_SIGNATURE',
27
+ /**
28
+ * Message expected to have a `from`, but doesn't
29
+ */
30
+ ERR_MISSING_FROM: 'ERR_MISSING_FROM',
23
31
  // Strict no-signing codes
24
32
  /**
25
33
  * Message expected to not have a `from`, but does
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;OAEG;IACH,4BAA4B,EAAE,8BAA8B;IAC5D;;OAEG;IACH,8BAA8B,EAAE,gCAAgC;IAEhE,uBAAuB;IAEvB;;OAEG;IACH,qBAAqB,EAAE,uBAAuB;IAC9C;;OAEG;IACH,iBAAiB,EAAE,mBAAmB;IACtC;;OAEG;IACH,qBAAqB,EAAE,uBAAuB;IAE9C,0BAA0B;IAE1B;;OAEG;IACH,mBAAmB,EAAE,qBAAqB;IAC1C;;OAEG;IACH,wBAAwB,EAAE,0BAA0B;IACpD;;OAEG;IACH,kBAAkB,EAAE,oBAAoB;IACxC;;OAEG;IACH,oBAAoB,EAAE,sBAAsB;CAC7C,CAAA"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;OAEG;IACH,4BAA4B,EAAE,8BAA8B;IAC5D;;OAEG;IACH,8BAA8B,EAAE,gCAAgC;IAEhE,uBAAuB;IAEvB;;OAEG;IACH,qBAAqB,EAAE,uBAAuB;IAC9C;;OAEG;IACH,iBAAiB,EAAE,mBAAmB;IACtC;;OAEG;IACH,eAAe,EAAE,iBAAiB;IAClC;;OAEG;IACH,qBAAqB,EAAE,uBAAuB;IAC9C;;OAEG;IACH,gBAAgB,EAAE,kBAAkB;IAEpC,0BAA0B;IAE1B;;OAEG;IACH,mBAAmB,EAAE,qBAAqB;IAC1C;;OAEG;IACH,wBAAwB,EAAE,0BAA0B;IACpD;;OAEG;IACH,kBAAkB,EAAE,oBAAoB;IACxC;;OAEG;IACH,oBAAoB,EAAE,sBAAsB;CAC7C,CAAA"}
@@ -1,13 +1,13 @@
1
- import { EventEmitter } from '@libp2p/interfaces';
1
+ import { EventEmitter, EventHandler } from '@libp2p/interfaces';
2
2
  import Queue from 'p-queue';
3
- import { RPC, IRPC } from './message/rpc.js';
4
- import { PeerStreams } from './peer-streams.js';
5
3
  import type { PeerId } from '@libp2p/interfaces/peer-id';
6
4
  import type { Registrar, IncomingStreamData } from '@libp2p/interfaces/registrar';
7
5
  import type { Connection } from '@libp2p/interfaces/connection';
8
- import type BufferList from 'bl';
9
- import type { PubSub, Message, StrictNoSign, StrictSign, PubsubOptions, PubsubEvents } from '@libp2p/interfaces/pubsub';
6
+ import type { PubSub, Message, StrictNoSign, StrictSign, PubSubOptions, PubSubEvents, RPC, PeerStreams, RPCSubscription } from '@libp2p/interfaces/pubsub';
10
7
  import type { Logger } from '@libp2p/logger';
8
+ import type { PeerMap } from '@libp2p/peer-map';
9
+ import type { IRPC } from './message/rpc.js';
10
+ import { RPC as RPCProto } from './message/rpc.js';
11
11
  export interface TopicValidator {
12
12
  (topic: string, message: Message): Promise<void>;
13
13
  }
@@ -15,7 +15,7 @@ export interface TopicValidator {
15
15
  * PubsubBaseProtocol handles the peers and connections logic for pubsub routers
16
16
  * and specifies the API that pubsub routers should have.
17
17
  */
18
- export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<EventMap & PubsubEvents> implements PubSub<EventMap & PubsubEvents> {
18
+ export declare abstract class PubsubBaseProtocol<EventMap extends PubSubEvents = PubSubEvents> extends EventEmitter<EventMap & PubSubEvents> implements PubSub<EventMap & PubSubEvents> {
19
19
  peerId: PeerId;
20
20
  started: boolean;
21
21
  /**
@@ -29,11 +29,11 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
29
29
  /**
30
30
  * Map of peer streams
31
31
  */
32
- peers: Map<string, PeerStreams>;
32
+ peers: PeerMap<PeerStreams>;
33
33
  /**
34
34
  * The signature policy to follow by default
35
35
  */
36
- globalSignaturePolicy: StrictNoSign | StrictSign;
36
+ globalSignaturePolicy: typeof StrictNoSign | typeof StrictSign;
37
37
  /**
38
38
  * If router can relay received messages, even if not subscribed
39
39
  */
@@ -51,12 +51,12 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
51
51
  topicValidators: Map<string, TopicValidator>;
52
52
  queue: Queue;
53
53
  registrar: Registrar;
54
+ multicodecs: string[];
54
55
  protected log: Logger;
55
- protected multicodecs: string[];
56
56
  protected _libp2p: any;
57
57
  private _registrarHandlerId;
58
58
  private _registrarTopologyId;
59
- constructor(props: PubsubOptions);
59
+ constructor(props: PubSubOptions);
60
60
  /**
61
61
  * Register the pubsub protocol onto the libp2p node.
62
62
  *
@@ -83,7 +83,7 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
83
83
  /**
84
84
  * Notifies the router that a peer has been connected
85
85
  */
86
- protected _addPeer(peerId: PeerId, protocol: string): PeerStreams;
86
+ addPeer(peerId: PeerId, protocol: string): PeerStreams;
87
87
  /**
88
88
  * Notifies the router that a peer has been disconnected
89
89
  */
@@ -91,23 +91,19 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
91
91
  /**
92
92
  * Responsible for processing each RPC message received by other peers.
93
93
  */
94
- _processMessages(idB58Str: string, stream: AsyncIterable<Uint8Array | BufferList>, peerStreams: PeerStreams): Promise<void>;
94
+ processMessages(peerId: PeerId, stream: AsyncIterable<Uint8Array>, peerStreams: PeerStreams): Promise<void>;
95
95
  /**
96
96
  * Handles an rpc request from a peer
97
97
  */
98
- _processRpc(idB58Str: string, peerStreams: PeerStreams, rpc: RPC): Promise<boolean>;
98
+ processRpc(from: PeerId, peerStreams: PeerStreams, rpc: RPC): Promise<void>;
99
99
  /**
100
100
  * Handles a subscription change from a peer
101
101
  */
102
- _processRpcSubOpt(id: string, subOpt: RPC.ISubOpts): void;
102
+ processRpcSubOpt(id: PeerId, subOpt: RPCSubscription): void;
103
103
  /**
104
104
  * Handles an message from a peer
105
105
  */
106
- _processRpcMessage(msg: Message): Promise<void>;
107
- /**
108
- * Emit a message from a peer
109
- */
110
- _emitMessage(message: Message): void;
106
+ processMessage(from: PeerId, msg: Message): Promise<void>;
111
107
  /**
112
108
  * The default msgID implementation
113
109
  * Child class can override this.
@@ -117,25 +113,29 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
117
113
  * Whether to accept a message from a peer
118
114
  * Override to create a graylist
119
115
  */
120
- _acceptFrom(id: string): boolean;
116
+ acceptFrom(id: PeerId): boolean;
121
117
  /**
122
118
  * Decode Uint8Array into an RPC object.
123
119
  * This can be override to use a custom router protobuf.
124
120
  */
125
- _decodeRpc(bytes: Uint8Array): RPC;
121
+ decodeRpc(bytes: Uint8Array): RPCProto;
126
122
  /**
127
123
  * Encode RPC object into a Uint8Array.
128
124
  * This can be override to use a custom router protobuf.
129
125
  */
130
- _encodeRpc(rpc: IRPC): Uint8Array;
126
+ encodeRpc(rpc: IRPC): Uint8Array;
131
127
  /**
132
128
  * Send an rpc object to a peer
133
129
  */
134
- _sendRpc(id: string, rpc: IRPC): void;
130
+ send(peer: PeerId, data: {
131
+ messages?: Message[];
132
+ subscriptions?: string[];
133
+ subscribe?: boolean;
134
+ }): void;
135
135
  /**
136
- * Send subscriptions to a peer
136
+ * Send an rpc object to a peer
137
137
  */
138
- _sendSubscriptions(id: string, topics: string[], subscribe: boolean): void;
138
+ sendRpc(peer: PeerId, rpc: IRPC): void;
139
139
  /**
140
140
  * Validates the given message. The signature will be checked for authenticity.
141
141
  * Throws an error on invalid messages
@@ -145,31 +145,34 @@ export declare abstract class PubsubBaseProtocol<EventMap> extends EventEmitter<
145
145
  * Normalizes the message and signs it, if signing is enabled.
146
146
  * Should be used by the routers to create the message to send.
147
147
  */
148
- protected _buildMessage(message: Message): Promise<Message>;
148
+ buildMessage(message: Message): Promise<Message>;
149
149
  /**
150
150
  * Get a list of the peer-ids that are subscribed to one topic.
151
151
  */
152
- getSubscribers(topic: string): string[];
152
+ getSubscribers(topic: string): PeerId[];
153
153
  /**
154
154
  * Publishes messages to all subscribed peers
155
155
  */
156
- publish(topic: string, message: Uint8Array): Promise<void>;
156
+ dispatchEvent(event: CustomEvent): boolean;
157
157
  /**
158
158
  * Overriding the implementation of publish should handle the appropriate algorithms for the publish/subscriber implementation.
159
159
  * For example, a Floodsub implementation might simply publish each message to each topic for every peer
160
160
  */
161
- abstract _publish(message: Message): Promise<void>;
161
+ abstract publishMessage(peerId: PeerId, message: Message): Promise<void>;
162
162
  /**
163
163
  * Subscribes to a given topic.
164
164
  */
165
165
  subscribe(topic: string): void;
166
166
  /**
167
- * Unsubscribe from the given topic.
167
+ * Unsubscribe from the given topic
168
168
  */
169
169
  unsubscribe(topic: string): void;
170
170
  /**
171
171
  * Get the list of topics which the peer is subscribed to.
172
172
  */
173
173
  getTopics(): string[];
174
+ getPeers(): PeerId[];
175
+ addEventListener<U extends keyof EventMap>(type: U, callback: EventHandler<EventMap[U]>, options?: AddEventListenerOptions | boolean): void;
176
+ removeEventListener<U extends keyof EventMap>(type: U, callback: EventHandler<EventMap[U]> | undefined, options?: EventListenerOptions | boolean): void;
174
177
  }
175
178
  //# sourceMappingURL=index.d.ts.map
@@ -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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"}