@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.
@@ -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
- }).serialize()),
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] }).serialize()),
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 }).serialize()),
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 message = new PubSubData({
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 = message.serialize();
211
- return super.publish(bytes instanceof Uint8Array ? bytes : bytes.subarray(), { to: options?.strict ? tos : this.getPeersWithTopics(topics, tos) });
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: { from: publicKey, unsubscriptions: changed },
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.deserialize(message.data);
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: { data: pubsubMessage, message },
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: subscriptionEvent,
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: { from: subscriber, unsubscriptions: changed },
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
- }).serialize()),
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;
@@ -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.4",
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.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.0",
58
- "@peerbit/stream": "1.0.4",
59
- "@peerbit/uint8arrays": "3.0.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": "c1a13f3612fcf9490632b26e147227cd4e7f1c53"
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
- }).serialize()
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] }).serialize()),
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 }).serialize()),
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 message = new PubSubData({
321
+ const dataMessage = new PubSubData({
319
322
  topics: topics.map((x) => x.toString()),
320
323
  data,
321
324
  strict: options.strict,
322
325
  });
323
- const bytes = message.serialize();
324
- return super.publish(
325
- bytes instanceof Uint8Array ? bytes : bytes.subarray(),
326
- { to: options?.strict ? tos : this.getPeersWithTopics(topics, tos) }
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: { from: publicKey, unsubscriptions: changed },
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.deserialize(message.data);
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: { data: pubsubMessage, message },
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(subscriberKey, {
507
- timestamp: message.header.timetamp, // TODO update timestamps on all messages?
508
- data: subscription.data,
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: subscriptionEvent,
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: { from: subscriber, unsubscriptions: changed },
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
- }).serialize()
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))
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }