@dxos/messaging 0.6.12-main.ed7cda7 → 0.6.12-staging.0b4bb48

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.
Files changed (42) hide show
  1. package/dist/lib/browser/index.mjs +16 -16
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +16 -16
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/types/src/messenger.blueprint-test.d.ts.map +1 -1
  8. package/dist/types/src/messenger.d.ts.map +1 -1
  9. package/dist/types/src/messenger.test.d.ts +2 -0
  10. package/dist/types/src/messenger.test.d.ts.map +1 -0
  11. package/dist/types/src/signal-client/signal-client.test.d.ts +2 -0
  12. package/dist/types/src/signal-client/signal-client.test.d.ts.map +1 -0
  13. package/dist/types/src/signal-client/signal-rpc-client.test.d.ts +2 -0
  14. package/dist/types/src/signal-client/signal-rpc-client.test.d.ts.map +1 -0
  15. package/dist/types/src/signal-manager/edge-signal-manager.d.ts.map +1 -1
  16. package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts +2 -0
  17. package/dist/types/src/signal-manager/edge-signal-manager.test.d.ts.map +1 -0
  18. package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts +2 -0
  19. package/dist/types/src/signal-manager/websocket-signal-manager.test.d.ts.map +1 -0
  20. package/package.json +20 -18
  21. package/src/messenger.blueprint-test.ts +28 -23
  22. package/src/{messenger.node.test.ts → messenger.test.ts} +4 -6
  23. package/src/messenger.ts +1 -1
  24. package/src/signal-client/{signal-client.node.test.ts → signal-client.test.ts} +8 -9
  25. package/src/signal-client/{signal-rpc-client.node.test.ts → signal-rpc-client.test.ts} +13 -8
  26. package/src/signal-manager/{edge-signal-manager.node.test.ts → edge-signal-manager.test.ts} +4 -7
  27. package/src/signal-manager/edge-signal-manager.ts +6 -5
  28. package/src/signal-manager/{websocket-signal-manager.node.test.ts → websocket-signal-manager.test.ts} +30 -12
  29. package/src/testing/test-peer.ts +1 -1
  30. package/dist/lib/node-esm/index.mjs +0 -2292
  31. package/dist/lib/node-esm/index.mjs.map +0 -7
  32. package/dist/lib/node-esm/meta.json +0 -1
  33. package/dist/types/src/messenger.node.test.d.ts +0 -2
  34. package/dist/types/src/messenger.node.test.d.ts.map +0 -1
  35. package/dist/types/src/signal-client/signal-client.node.test.d.ts +0 -2
  36. package/dist/types/src/signal-client/signal-client.node.test.d.ts.map +0 -1
  37. package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts +0 -2
  38. package/dist/types/src/signal-client/signal-rpc-client.node.test.d.ts.map +0 -1
  39. package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts +0 -2
  40. package/dist/types/src/signal-manager/edge-signal-manager.node.test.d.ts.map +0 -1
  41. package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts +0 -2
  42. package/dist/types/src/signal-manager/websocket-signal-manager.node.test.d.ts.map +0 -1
@@ -2,6 +2,8 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { AnySchema } from '@bufbuild/protobuf/wkt';
6
+
5
7
  import { Event } from '@dxos/async';
6
8
  import { Resource } from '@dxos/context';
7
9
  import { type EdgeConnection, protocol } from '@dxos/edge-client';
@@ -9,7 +11,6 @@ import { invariant } from '@dxos/invariant';
9
11
  import { PublicKey } from '@dxos/keys';
10
12
  import { log } from '@dxos/log';
11
13
  import { EdgeService } from '@dxos/protocols';
12
- import { bufWkt } from '@dxos/protocols/buf';
13
14
  import {
14
15
  SwarmRequestSchema,
15
16
  SwarmRequest_Action as SwarmRequestAction,
@@ -87,7 +88,7 @@ export class EdgeSignalManager extends Resource implements SignalManager {
87
88
  }
88
89
 
89
90
  await this._edgeConnection.send(
90
- protocol.createMessage(bufWkt.AnySchema, {
91
+ protocol.createMessage(AnySchema, {
91
92
  serviceId: EdgeService.SIGNAL_SERVICE_ID,
92
93
  source: message.author,
93
94
  target: [message.recipient],
@@ -125,7 +126,7 @@ export class EdgeSignalManager extends Resource implements SignalManager {
125
126
  return;
126
127
  }
127
128
  const oldPeers = this._swarmPeers.get(topic)!;
128
- const timestamp = message.timestamp ? new Date(Date.parse(message.timestamp)) : new Date();
129
+ const timestamp = new Date(Date.parse(message.timestamp));
129
130
  const newPeers = new ComplexSet<PeerInfo>(PeerInfoHash, payload.peers);
130
131
 
131
132
  // Emit new available peers in the swarm.
@@ -154,8 +155,8 @@ export class EdgeSignalManager extends Resource implements SignalManager {
154
155
  }
155
156
 
156
157
  private _processMessage(message: EdgeMessage) {
157
- invariant(protocol.getPayloadType(message) === bufWkt.AnySchema.typeName, 'Wrong payload type');
158
- const payload = protocol.getPayload(message, bufWkt.AnySchema);
158
+ invariant(protocol.getPayloadType(message) === AnySchema.typeName, 'Wrong payload type');
159
+ const payload = protocol.getPayload(message, AnySchema);
159
160
  invariant(message.source, 'source is missing');
160
161
  invariant(message.target, 'target is missing');
161
162
  invariant(message.target.length === 1, 'target should have exactly one item');
@@ -2,31 +2,37 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { afterAll, beforeAll, describe, test } from 'vitest';
6
-
7
5
  import { asyncTimeout, sleep } from '@dxos/async';
8
6
  import { PublicKey } from '@dxos/keys';
9
7
  import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
10
- import { openAndClose } from '@dxos/test-utils';
8
+ import { afterAll, beforeAll, describe, test, openAndClose } from '@dxos/test';
11
9
 
12
10
  import { WebsocketSignalManager } from './websocket-signal-manager';
13
11
  import { createMessage, expectPeerAvailable, expectReceivedMessage } from '../testing';
14
12
 
15
- describe.skip('WebSocketSignalManager', () => {
13
+ describe('WebSocketSignalManager', () => {
16
14
  let broker1: SignalServerRunner;
17
15
  let broker2: SignalServerRunner;
18
16
 
19
17
  beforeAll(async () => {
18
+ if (!mochaExecutor.tags.includes('e2e')) {
19
+ return;
20
+ }
21
+
20
22
  broker1 = await runTestSignalServer({ port: 5001 });
21
23
  broker2 = await runTestSignalServer({ port: 5002 });
22
24
  });
23
25
 
24
26
  afterAll(() => {
27
+ if (!mochaExecutor.tags.includes('e2e')) {
28
+ return;
29
+ }
30
+
25
31
  void broker1.stop();
26
32
  void broker2.stop();
27
33
  });
28
34
 
29
- test('join swarm with two brokers', { timeout: 1_000 }, async () => {
35
+ test('join swarm with two brokers', async () => {
30
36
  const client1 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
31
37
  const client2 = new WebsocketSignalManager([{ server: broker1.url() }]);
32
38
  const client3 = new WebsocketSignalManager([{ server: broker2.url() }]);
@@ -44,9 +50,12 @@ describe.skip('WebSocketSignalManager', () => {
44
50
  await client3.join({ topic, peer: { peerKey: peer3.toHex() } });
45
51
 
46
52
  await Promise.all([joined12, joined13, joined21, joined31]);
47
- });
53
+ })
54
+ .timeout(1_000)
55
+ .retries(2)
56
+ .tag('e2e');
48
57
 
49
- test('join single swarm with doubled brokers', { timeout: 1_000 }, async () => {
58
+ test('join single swarm with doubled brokers', async () => {
50
59
  const client1 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
51
60
  const client2 = new WebsocketSignalManager([{ server: broker1.url() }, { server: broker2.url() }]);
52
61
  await openAndClose(client1, client2);
@@ -69,9 +78,12 @@ describe.skip('WebSocketSignalManager', () => {
69
78
  await client1.sendMessage(message);
70
79
 
71
80
  await asyncTimeout(received, 1_000);
72
- });
81
+ })
82
+ .timeout(1_000)
83
+ .retries(2)
84
+ .tag('e2e');
73
85
 
74
- test('works with one broken server', { timeout: 1_000 }, async () => {
86
+ test('works with one broken server', async () => {
75
87
  const client1 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
76
88
  const client2 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
77
89
  await openAndClose(client1, client2);
@@ -85,9 +97,12 @@ describe.skip('WebSocketSignalManager', () => {
85
97
  await client2.join({ topic, peer: { peerKey: peer2.toHex() } });
86
98
 
87
99
  await Promise.all([joined12, joined21]);
88
- });
100
+ })
101
+ .timeout(1_000)
102
+ .retries(2)
103
+ .tag('e2e');
89
104
 
90
- test('join two swarms with a broken signal server', { timeout: 1_000 }, async () => {
105
+ test('join two swarms with a broken signal server', async () => {
91
106
  const client1 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
92
107
  const client2 = new WebsocketSignalManager([{ server: 'ws://broken.server/signal' }, { server: broker1.url() }]);
93
108
  await openAndClose(client1, client2);
@@ -107,5 +122,8 @@ describe.skip('WebSocketSignalManager', () => {
107
122
  await client1.join({ topic: topic2, peer: { peerKey: peer1.toHex() } });
108
123
  await client2.join({ topic: topic2, peer: { peerKey: peer2.toHex() } });
109
124
  await Promise.all([joined212, joined221]);
110
- });
125
+ })
126
+ .timeout(1_000)
127
+ .retries(2)
128
+ .tag('e2e');
111
129
  });
@@ -45,7 +45,7 @@ export class TestPeer extends Resource {
45
45
 
46
46
  protected override async _open() {
47
47
  this.signalManager = await this.testBuilder.createSignalManager(this.identityKey, this.peerId);
48
- this.messenger = new Messenger({ signalManager: this.signalManager, retryDelay: 300 });
48
+ this.messenger = new Messenger({ signalManager: this.signalManager });
49
49
 
50
50
  await this.signalManager.open();
51
51
  this.messenger.open();