@peerbit/pubsub 1.0.4 → 1.0.6
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 +1 -5
- package/lib/esm/index.js +25 -20
- package/lib/esm/index.js.map +1 -1
- package/package.json +6 -7
- package/src/index.ts +38 -28
- package/lib/esm/package.json +0 -3
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PeerId as Libp2pPeerId } from "@libp2p/interface-peer-id";
|
|
2
2
|
import { DataMessage } from "@peerbit/stream-interface";
|
|
3
3
|
import { DirectStream, DirectStreamComponents, DirectStreamOptions, PeerStreams } from "@peerbit/stream";
|
|
4
|
-
import { PubSub } from "@peerbit/pubsub-interface";
|
|
4
|
+
import { PubSub, SubscriptionData } from "@peerbit/pubsub-interface";
|
|
5
5
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
6
6
|
import { Connection } from "@libp2p/interface-connection";
|
|
7
7
|
import { PubSubEvents } from "@peerbit/pubsub-interface";
|
|
@@ -13,10 +13,6 @@ export interface PeerStreamsInit {
|
|
|
13
13
|
export type DirectSubOptions = {
|
|
14
14
|
aggregate: boolean;
|
|
15
15
|
};
|
|
16
|
-
export type SubscriptionData = {
|
|
17
|
-
timestamp: bigint;
|
|
18
|
-
data?: Uint8Array;
|
|
19
|
-
};
|
|
20
16
|
export type DirectSubComponents = DirectStreamComponents;
|
|
21
17
|
export type PeerId = Libp2pPeerId | PublicSignKey;
|
|
22
18
|
export declare class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
package/lib/esm/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { logger as logFn } from "@peerbit/logger";
|
|
|
2
2
|
import { DataMessage } from "@peerbit/stream-interface";
|
|
3
3
|
import { DirectStream, } from "@peerbit/stream";
|
|
4
4
|
import { CodeError } from "@libp2p/interfaces/errors";
|
|
5
|
-
import { PubSubMessage, Subscribe, PubSubData, toUint8Array, Unsubscribe, GetSubscribers, Subscription, } from "@peerbit/pubsub-interface";
|
|
5
|
+
import { PubSubMessage, Subscribe, PubSubData, toUint8Array, Unsubscribe, GetSubscribers, Subscription, UnsubcriptionEvent, SubscriptionEvent, DataEvent, SubscriptionData, } from "@peerbit/pubsub-interface";
|
|
6
6
|
import { getPublicKeyFromPeerId, PublicSignKey } from "@peerbit/crypto";
|
|
7
7
|
import { CustomEvent } from "@libp2p/interfaces/events";
|
|
8
8
|
import { waitFor } from "@peerbit/time";
|
|
@@ -82,7 +82,7 @@ export class DirectSub extends DirectStream {
|
|
|
82
82
|
const message = new DataMessage({
|
|
83
83
|
data: toUint8Array(new Subscribe({
|
|
84
84
|
subscriptions: newTopicsForTopicData.map((x) => new Subscription(x, options?.data)),
|
|
85
|
-
}).
|
|
85
|
+
}).bytes()),
|
|
86
86
|
});
|
|
87
87
|
await this.publishMessage(this.components.peerId, await message.sign(this.sign));
|
|
88
88
|
}
|
|
@@ -113,7 +113,7 @@ export class DirectSub extends DirectStream {
|
|
|
113
113
|
this.topics.delete(topic);
|
|
114
114
|
this.topicsToPeers.delete(topic);
|
|
115
115
|
await this.publishMessage(this.components.peerId, await new DataMessage({
|
|
116
|
-
data: toUint8Array(new Unsubscribe({ topics: [topic] }).
|
|
116
|
+
data: toUint8Array(new Unsubscribe({ topics: [topic] }).bytes()),
|
|
117
117
|
}).sign(this.sign));
|
|
118
118
|
return true;
|
|
119
119
|
}
|
|
@@ -171,7 +171,7 @@ export class DirectSub extends DirectStream {
|
|
|
171
171
|
}
|
|
172
172
|
return this.publishMessage(this.components.peerId, await new DataMessage({
|
|
173
173
|
to: from ? [from.hashcode()] : [],
|
|
174
|
-
data: toUint8Array(new GetSubscribers({ topics }).
|
|
174
|
+
data: toUint8Array(new GetSubscribers({ topics }).bytes()),
|
|
175
175
|
}).sign(this.sign));
|
|
176
176
|
}
|
|
177
177
|
getPeersWithTopics(topics, otherPeers) {
|
|
@@ -195,6 +195,9 @@ export class DirectSub extends DirectStream {
|
|
|
195
195
|
);
|
|
196
196
|
} */
|
|
197
197
|
async publish(data, options) {
|
|
198
|
+
if (!this.started) {
|
|
199
|
+
throw new Error("Not started");
|
|
200
|
+
}
|
|
198
201
|
const topics = options.topics?.map((x) => x.toString()) || [];
|
|
199
202
|
const tos = options?.to?.map((x) => x instanceof PublicSignKey
|
|
200
203
|
? x.hashcode()
|
|
@@ -202,13 +205,19 @@ export class DirectSub extends DirectStream {
|
|
|
202
205
|
? x
|
|
203
206
|
: getPublicKeyFromPeerId(x).hashcode()) || [];
|
|
204
207
|
// Embedd topic info before the data so that peers/relays can also use topic info to route messages efficiently
|
|
205
|
-
const
|
|
208
|
+
const dataMessage = new PubSubData({
|
|
206
209
|
topics: topics.map((x) => x.toString()),
|
|
207
210
|
data,
|
|
208
211
|
strict: options.strict,
|
|
209
212
|
});
|
|
210
|
-
const bytes =
|
|
211
|
-
|
|
213
|
+
const bytes = dataMessage.bytes();
|
|
214
|
+
const message = await this.createMessage(bytes, options);
|
|
215
|
+
if (this.emitSelf) {
|
|
216
|
+
super.dispatchEvent(new CustomEvent("data", { detail: new DataEvent(dataMessage, message) }));
|
|
217
|
+
}
|
|
218
|
+
// send to all the other peers
|
|
219
|
+
await this.publishMessage(this.components.peerId, message, undefined);
|
|
220
|
+
return message.id;
|
|
212
221
|
}
|
|
213
222
|
deletePeerFromTopic(topic, publicKeyHash) {
|
|
214
223
|
const peers = this.topics.get(topic);
|
|
@@ -240,7 +249,7 @@ export class DirectSub extends DirectStream {
|
|
|
240
249
|
this.lastSubscriptionMessages.delete(publicKeyHash);
|
|
241
250
|
if (changed.length > 0) {
|
|
242
251
|
this.dispatchEvent(new CustomEvent("unsubscribe", {
|
|
243
|
-
detail:
|
|
252
|
+
detail: new UnsubcriptionEvent(publicKey, changed),
|
|
244
253
|
}));
|
|
245
254
|
}
|
|
246
255
|
}
|
|
@@ -264,7 +273,7 @@ export class DirectSub extends DirectStream {
|
|
|
264
273
|
return true;
|
|
265
274
|
}
|
|
266
275
|
async onDataMessage(from, stream, message) {
|
|
267
|
-
const pubsubMessage = PubSubMessage.
|
|
276
|
+
const pubsubMessage = PubSubMessage.from(message.data);
|
|
268
277
|
if (pubsubMessage instanceof PubSubData) {
|
|
269
278
|
/**
|
|
270
279
|
* See if we know more subscribers of the message topics. If so, add aditional end recievers of the message
|
|
@@ -292,7 +301,7 @@ export class DirectSub extends DirectStream {
|
|
|
292
301
|
return false;
|
|
293
302
|
}
|
|
294
303
|
this.dispatchEvent(new CustomEvent("data", {
|
|
295
|
-
detail:
|
|
304
|
+
detail: new DataEvent(pubsubMessage, message),
|
|
296
305
|
}));
|
|
297
306
|
}
|
|
298
307
|
}
|
|
@@ -342,10 +351,10 @@ export class DirectSub extends DirectStream {
|
|
|
342
351
|
if (!existingSubscription ||
|
|
343
352
|
(existingSubscription.timestamp < message.header.timetamp &&
|
|
344
353
|
subscription.data)) {
|
|
345
|
-
peers.set(subscriberKey, {
|
|
354
|
+
peers.set(subscriberKey, new SubscriptionData({
|
|
346
355
|
timestamp: message.header.timetamp,
|
|
347
356
|
data: subscription.data,
|
|
348
|
-
});
|
|
357
|
+
}));
|
|
349
358
|
if (!existingSubscription?.data ||
|
|
350
359
|
!equals(existingSubscription.data, subscription.data)) {
|
|
351
360
|
changed.push(subscription);
|
|
@@ -355,12 +364,8 @@ export class DirectSub extends DirectStream {
|
|
|
355
364
|
this.peerToTopic.get(subscriberKey)?.add(subscription.topic);
|
|
356
365
|
});
|
|
357
366
|
if (changed.length > 0) {
|
|
358
|
-
const subscriptionEvent = {
|
|
359
|
-
from: subscriber,
|
|
360
|
-
subscriptions: changed,
|
|
361
|
-
};
|
|
362
367
|
this.dispatchEvent(new CustomEvent("subscribe", {
|
|
363
|
-
detail:
|
|
368
|
+
detail: new SubscriptionEvent(subscriber, changed),
|
|
364
369
|
}));
|
|
365
370
|
}
|
|
366
371
|
// Forward
|
|
@@ -390,7 +395,7 @@ export class DirectSub extends DirectStream {
|
|
|
390
395
|
}
|
|
391
396
|
if (changed.length > 0) {
|
|
392
397
|
this.dispatchEvent(new CustomEvent("unsubscribe", {
|
|
393
|
-
detail:
|
|
398
|
+
detail: new UnsubcriptionEvent(subscriber, changed),
|
|
394
399
|
}));
|
|
395
400
|
}
|
|
396
401
|
// Forward
|
|
@@ -422,7 +427,7 @@ export class DirectSub extends DirectStream {
|
|
|
422
427
|
this.publishMessage(this.components.peerId, await new DataMessage({
|
|
423
428
|
data: toUint8Array(new Subscribe({
|
|
424
429
|
subscriptions: subscriptionsToSend,
|
|
425
|
-
}).
|
|
430
|
+
}).bytes()),
|
|
426
431
|
}).sign(this.sign), [stream]); // send back to same stream
|
|
427
432
|
}
|
|
428
433
|
// Forward
|
|
@@ -457,7 +462,7 @@ export const waitForSubscribers = async (libp2p, peersToWait, topic) => {
|
|
|
457
462
|
reject(new Error("Failed to find expected subscribers for topic: " + topic));
|
|
458
463
|
}
|
|
459
464
|
try {
|
|
460
|
-
const peers = libp2p.services.pubsub.getSubscribers(topic);
|
|
465
|
+
const peers = await libp2p.services.pubsub.getSubscribers(topic);
|
|
461
466
|
const hasAllPeers = peerIdsToWait
|
|
462
467
|
.map((e) => peers && peers.has(e))
|
|
463
468
|
.filter((e) => e === false).length === 0;
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/pubsub",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Direct streaming for libp2p",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"clean": "shx rm -rf lib/*",
|
|
18
18
|
"build": "yarn clean && tsc -p tsconfig.json",
|
|
19
|
-
"postbuild": "echo '{\"type\":\"module\"} ' | node ../../../node_modules/.bin/json > lib/esm/package.json",
|
|
20
19
|
"test": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.ts --runInBand --forceExit",
|
|
21
20
|
"test:unit": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.unit.ts --runInBand --forceExit",
|
|
22
21
|
"test:integration": "node ../node_modules/.bin/jest test -c ../../../jest.config.integration.ts --runInBand --forceExit"
|
|
@@ -50,16 +49,16 @@
|
|
|
50
49
|
"dao.xyz"
|
|
51
50
|
],
|
|
52
51
|
"devDependencies": {
|
|
53
|
-
"@peerbit/libp2p-test-utils": "1.0.
|
|
52
|
+
"@peerbit/libp2p-test-utils": "1.0.2"
|
|
54
53
|
},
|
|
55
54
|
"dependencies": {
|
|
56
55
|
"@libp2p/interfaces": "^3.3.2",
|
|
57
|
-
"@peerbit/logger": "1.0.
|
|
58
|
-
"@peerbit/stream": "1.0.
|
|
59
|
-
"@peerbit/uint8arrays": "3.0.
|
|
56
|
+
"@peerbit/logger": "1.0.1",
|
|
57
|
+
"@peerbit/stream": "1.0.6",
|
|
58
|
+
"@peerbit/uint8arrays": "3.0.1",
|
|
60
59
|
"abstract-level": "^1.0.3",
|
|
61
60
|
"libp2p": "^0.45.9",
|
|
62
61
|
"memory-level": "^1.0.0"
|
|
63
62
|
},
|
|
64
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "32f61ad9f3d5906e13d46f2a80f61c1826a3e817"
|
|
65
64
|
}
|
package/src/index.ts
CHANGED
|
@@ -21,12 +21,13 @@ import {
|
|
|
21
21
|
UnsubcriptionEvent,
|
|
22
22
|
SubscriptionEvent,
|
|
23
23
|
PubSub,
|
|
24
|
+
DataEvent,
|
|
25
|
+
SubscriptionData,
|
|
24
26
|
} from "@peerbit/pubsub-interface";
|
|
25
27
|
import { getPublicKeyFromPeerId, PublicSignKey } from "@peerbit/crypto";
|
|
26
28
|
import { CustomEvent } from "@libp2p/interfaces/events";
|
|
27
29
|
import { waitFor } from "@peerbit/time";
|
|
28
30
|
import { Connection } from "@libp2p/interface-connection";
|
|
29
|
-
|
|
30
31
|
import { equals, startsWith } from "@peerbit/uint8arrays";
|
|
31
32
|
import { PubSubEvents } from "@peerbit/pubsub-interface";
|
|
32
33
|
|
|
@@ -41,8 +42,6 @@ export type DirectSubOptions = {
|
|
|
41
42
|
aggregate: boolean; // if true, we will collect topic/subscriber info for all traffic
|
|
42
43
|
};
|
|
43
44
|
|
|
44
|
-
export type SubscriptionData = { timestamp: bigint; data?: Uint8Array };
|
|
45
|
-
|
|
46
45
|
export type DirectSubComponents = DirectStreamComponents;
|
|
47
46
|
|
|
48
47
|
export type PeerId = Libp2pPeerId | PublicSignKey;
|
|
@@ -137,7 +136,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
137
136
|
subscriptions: newTopicsForTopicData.map(
|
|
138
137
|
(x) => new Subscription(x, options?.data)
|
|
139
138
|
),
|
|
140
|
-
}).
|
|
139
|
+
}).bytes()
|
|
141
140
|
),
|
|
142
141
|
});
|
|
143
142
|
|
|
@@ -186,7 +185,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
186
185
|
await this.publishMessage(
|
|
187
186
|
this.components.peerId,
|
|
188
187
|
await new DataMessage({
|
|
189
|
-
data: toUint8Array(new Unsubscribe({ topics: [topic] }).
|
|
188
|
+
data: toUint8Array(new Unsubscribe({ topics: [topic] }).bytes()),
|
|
190
189
|
}).sign(this.sign)
|
|
191
190
|
);
|
|
192
191
|
return true;
|
|
@@ -263,7 +262,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
263
262
|
this.components.peerId,
|
|
264
263
|
await new DataMessage({
|
|
265
264
|
to: from ? [from.hashcode()] : [],
|
|
266
|
-
data: toUint8Array(new GetSubscribers({ topics }).
|
|
265
|
+
data: toUint8Array(new GetSubscribers({ topics }).bytes()),
|
|
267
266
|
}).sign(this.sign)
|
|
268
267
|
);
|
|
269
268
|
}
|
|
@@ -304,6 +303,10 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
304
303
|
strict: true;
|
|
305
304
|
}
|
|
306
305
|
): Promise<Uint8Array> {
|
|
306
|
+
if (!this.started) {
|
|
307
|
+
throw new Error("Not started");
|
|
308
|
+
}
|
|
309
|
+
|
|
307
310
|
const topics =
|
|
308
311
|
(options as { topics: string[] }).topics?.map((x) => x.toString()) || [];
|
|
309
312
|
const tos =
|
|
@@ -315,16 +318,25 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
315
318
|
: getPublicKeyFromPeerId(x).hashcode()
|
|
316
319
|
) || [];
|
|
317
320
|
// Embedd topic info before the data so that peers/relays can also use topic info to route messages efficiently
|
|
318
|
-
const
|
|
321
|
+
const dataMessage = new PubSubData({
|
|
319
322
|
topics: topics.map((x) => x.toString()),
|
|
320
323
|
data,
|
|
321
324
|
strict: options.strict,
|
|
322
325
|
});
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
|
|
327
|
+
const bytes = dataMessage.bytes();
|
|
328
|
+
|
|
329
|
+
const message = await this.createMessage(bytes, options);
|
|
330
|
+
|
|
331
|
+
if (this.emitSelf) {
|
|
332
|
+
super.dispatchEvent(
|
|
333
|
+
new CustomEvent("data", { detail: new DataEvent(dataMessage, message) })
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// send to all the other peers
|
|
338
|
+
await this.publishMessage(this.components.peerId, message, undefined);
|
|
339
|
+
return message.id;
|
|
328
340
|
}
|
|
329
341
|
|
|
330
342
|
private deletePeerFromTopic(topic: string, publicKeyHash: string) {
|
|
@@ -365,7 +377,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
365
377
|
if (changed.length > 0) {
|
|
366
378
|
this.dispatchEvent(
|
|
367
379
|
new CustomEvent<UnsubcriptionEvent>("unsubscribe", {
|
|
368
|
-
detail:
|
|
380
|
+
detail: new UnsubcriptionEvent(publicKey, changed),
|
|
369
381
|
})
|
|
370
382
|
);
|
|
371
383
|
}
|
|
@@ -401,7 +413,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
401
413
|
stream: PeerStreams,
|
|
402
414
|
message: DataMessage
|
|
403
415
|
) {
|
|
404
|
-
const pubsubMessage = PubSubMessage.
|
|
416
|
+
const pubsubMessage = PubSubMessage.from(message.data);
|
|
405
417
|
if (pubsubMessage instanceof PubSubData) {
|
|
406
418
|
/**
|
|
407
419
|
* See if we know more subscribers of the message topics. If so, add aditional end recievers of the message
|
|
@@ -436,7 +448,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
436
448
|
}
|
|
437
449
|
this.dispatchEvent(
|
|
438
450
|
new CustomEvent("data", {
|
|
439
|
-
detail:
|
|
451
|
+
detail: new DataEvent(pubsubMessage, message),
|
|
440
452
|
})
|
|
441
453
|
);
|
|
442
454
|
}
|
|
@@ -503,10 +515,13 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
503
515
|
(existingSubscription.timestamp < message.header.timetamp &&
|
|
504
516
|
subscription.data)
|
|
505
517
|
) {
|
|
506
|
-
peers.set(
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
518
|
+
peers.set(
|
|
519
|
+
subscriberKey,
|
|
520
|
+
new SubscriptionData({
|
|
521
|
+
timestamp: message.header.timetamp, // TODO update timestamps on all messages?
|
|
522
|
+
data: subscription.data,
|
|
523
|
+
})
|
|
524
|
+
);
|
|
510
525
|
if (
|
|
511
526
|
!existingSubscription?.data ||
|
|
512
527
|
!equals(existingSubscription.data, subscription.data)
|
|
@@ -519,14 +534,9 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
519
534
|
this.peerToTopic.get(subscriberKey)?.add(subscription.topic);
|
|
520
535
|
});
|
|
521
536
|
if (changed.length > 0) {
|
|
522
|
-
const subscriptionEvent: SubscriptionEvent = {
|
|
523
|
-
from: subscriber,
|
|
524
|
-
subscriptions: changed,
|
|
525
|
-
};
|
|
526
|
-
|
|
527
537
|
this.dispatchEvent(
|
|
528
538
|
new CustomEvent<SubscriptionEvent>("subscribe", {
|
|
529
|
-
detail:
|
|
539
|
+
detail: new SubscriptionEvent(subscriber, changed),
|
|
530
540
|
})
|
|
531
541
|
);
|
|
532
542
|
}
|
|
@@ -566,7 +576,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
566
576
|
if (changed.length > 0) {
|
|
567
577
|
this.dispatchEvent(
|
|
568
578
|
new CustomEvent<UnsubcriptionEvent>("unsubscribe", {
|
|
569
|
-
detail:
|
|
579
|
+
detail: new UnsubcriptionEvent(subscriber, changed),
|
|
570
580
|
})
|
|
571
581
|
);
|
|
572
582
|
}
|
|
@@ -605,7 +615,7 @@ export class DirectSub extends DirectStream<PubSubEvents> implements PubSub {
|
|
|
605
615
|
data: toUint8Array(
|
|
606
616
|
new Subscribe({
|
|
607
617
|
subscriptions: subscriptionsToSend,
|
|
608
|
-
}).
|
|
618
|
+
}).bytes()
|
|
609
619
|
),
|
|
610
620
|
}).sign(this.sign),
|
|
611
621
|
[stream]
|
|
@@ -659,7 +669,7 @@ export const waitForSubscribers = async (
|
|
|
659
669
|
);
|
|
660
670
|
}
|
|
661
671
|
try {
|
|
662
|
-
const peers = libp2p.services.pubsub.getSubscribers(topic);
|
|
672
|
+
const peers = await libp2p.services.pubsub.getSubscribers(topic);
|
|
663
673
|
const hasAllPeers =
|
|
664
674
|
peerIdsToWait
|
|
665
675
|
.map((e) => peers && peers.has(e))
|
package/lib/esm/package.json
DELETED