@dxos/network-manager 0.6.8-main.3be982f → 0.6.8-staging.63bcb81

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 (49) hide show
  1. package/dist/lib/browser/{chunk-ZT4NXID2.mjs → chunk-ZQ4OU7JZ.mjs} +289 -251
  2. package/dist/lib/browser/chunk-ZQ4OU7JZ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +5 -2
  6. package/dist/lib/browser/testing/index.mjs.map +3 -3
  7. package/dist/lib/node/{chunk-DZJ3BJOK.cjs → chunk-IQBYIEAR.cjs} +294 -256
  8. package/dist/lib/node/chunk-IQBYIEAR.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +28 -28
  10. package/dist/lib/node/index.cjs.map +1 -1
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/testing/index.cjs +22 -19
  13. package/dist/lib/node/testing/index.cjs.map +3 -3
  14. package/dist/types/src/network-manager.d.ts +9 -6
  15. package/dist/types/src/network-manager.d.ts.map +1 -1
  16. package/dist/types/src/signal/signal-connection.d.ts +3 -2
  17. package/dist/types/src/signal/signal-connection.d.ts.map +1 -1
  18. package/dist/types/src/signal/signal-messenger.d.ts +5 -4
  19. package/dist/types/src/signal/signal-messenger.d.ts.map +1 -1
  20. package/dist/types/src/signal/swarm-messenger.d.ts +4 -7
  21. package/dist/types/src/signal/swarm-messenger.d.ts.map +1 -1
  22. package/dist/types/src/swarm/connection.d.ts +4 -4
  23. package/dist/types/src/swarm/connection.d.ts.map +1 -1
  24. package/dist/types/src/swarm/peer.d.ts +5 -4
  25. package/dist/types/src/swarm/peer.d.ts.map +1 -1
  26. package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -1
  27. package/dist/types/src/swarm/swarm.d.ts +4 -4
  28. package/dist/types/src/swarm/swarm.d.ts.map +1 -1
  29. package/dist/types/src/tests/basic-test-suite.d.ts.map +1 -1
  30. package/dist/types/src/tests/property-test-suite.d.ts.map +1 -1
  31. package/package.json +19 -18
  32. package/src/connection-log.ts +1 -1
  33. package/src/network-manager.ts +27 -13
  34. package/src/signal/integration.test.ts +25 -19
  35. package/src/signal/signal-connection.ts +3 -2
  36. package/src/signal/signal-messenger.ts +5 -4
  37. package/src/signal/swarm-messenger.test.ts +21 -21
  38. package/src/signal/swarm-messenger.ts +11 -10
  39. package/src/swarm/connection.test.ts +19 -17
  40. package/src/swarm/connection.ts +16 -15
  41. package/src/swarm/peer.ts +41 -35
  42. package/src/swarm/swarm-mapper.ts +7 -6
  43. package/src/swarm/swarm.test.ts +36 -28
  44. package/src/swarm/swarm.ts +57 -53
  45. package/src/testing/test-builder.ts +1 -1
  46. package/src/tests/basic-test-suite.ts +8 -5
  47. package/src/tests/property-test-suite.ts +4 -1
  48. package/dist/lib/browser/chunk-ZT4NXID2.mjs.map +0 -7
  49. package/dist/lib/node/chunk-DZJ3BJOK.cjs.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-messenger.d.ts","sourceRoot":"","sources":["../../../../src/signal/swarm-messenger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uCAAuC,CAAC;AAGvF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMjG,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAIF;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoF;IACjH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4E;gBAE9F,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,qBAAqB;IAOtE,cAAc,CAAC,EACnB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;QACD,MAAM,EAAE,SAAS,CAAC;QAClB,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,GAAG,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BX,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAerC,oBAAoB;YA0BpB,eAAe;YAWf,YAAY;YAqCZ,aAAa;CAuB5B"}
1
+ {"version":3,"file":"swarm-messenger.d.ts","sourceRoot":"","sources":["../../../../src/signal/swarm-messenger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uCAAuC,CAAC;AAGvF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMjG,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAIF;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4E;gBAE9F,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,qBAAqB;IAOtE,cAAc,CAAC,EACnB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE;QACD,MAAM,EAAE,QAAQ,CAAC;QACjB,SAAS,EAAE,QAAQ,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BX,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAerC,oBAAoB;YA0BpB,eAAe;YAWf,YAAY;YAqCZ,aAAa;CAuB5B"}
@@ -1,6 +1,7 @@
1
1
  import { Event } from '@dxos/async';
2
2
  import { ErrorStream } from '@dxos/debug';
3
3
  import { PublicKey } from '@dxos/keys';
4
+ import { type PeerInfo } from '@dxos/messaging';
4
5
  import { type SignalMessage, type SignalMessenger } from '../signal';
5
6
  import { type Transport, type TransportFactory, type TransportStats } from '../transport';
6
7
  import { type WireProtocol } from '../wire-protocol';
@@ -52,8 +53,8 @@ export declare enum ConnectionState {
52
53
  */
53
54
  export declare class Connection {
54
55
  readonly topic: PublicKey;
55
- readonly ownId: PublicKey;
56
- readonly remoteId: PublicKey;
56
+ readonly localInfo: PeerInfo;
57
+ readonly remoteInfo: PeerInfo;
57
58
  readonly sessionId: PublicKey;
58
59
  readonly initiator: boolean;
59
60
  private readonly _signalMessaging;
@@ -75,8 +76,7 @@ export declare class Connection {
75
76
  readonly transportStats: Event<TransportStats>;
76
77
  private readonly _signalSendTask;
77
78
  private _signallingDelay;
78
- constructor(topic: PublicKey, ownId: PublicKey, // TODO(burdon): peerID?
79
- remoteId: PublicKey, sessionId: PublicKey, initiator: boolean, _signalMessaging: SignalMessenger, _protocol: WireProtocol, _transportFactory: TransportFactory, _callbacks?: ConnectionCallbacks | undefined);
79
+ constructor(topic: PublicKey, localInfo: PeerInfo, remoteInfo: PeerInfo, sessionId: PublicKey, initiator: boolean, _signalMessaging: SignalMessenger, _protocol: WireProtocol, _transportFactory: TransportFactory, _callbacks?: ConnectionCallbacks | undefined);
80
80
  get sessionIdString(): string;
81
81
  get state(): ConnectionState;
82
82
  get transport(): Transport | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/swarm/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAAoE,MAAM,aAAa,CAAC;AAEpH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAavC,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoBrD,UAAU,mBAAmB;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,UAAU,eAAe;IAEzB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,MAAM,WAAW;IAEjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAU;aA4BH,KAAK,EAAE,SAAS;aAChB,KAAK,EAAE,SAAS;aAChB,QAAQ,EAAE,SAAS;aACnB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,OAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAnC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,uBAAuB,CAAiB;IAEhD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAiB;IAEzC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAwB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,QAAQ,CAAC,YAAY,yBAAgC;IACrD,QAAQ,CAAC,MAAM,cAAqB;IAE7B,WAAW,SAA8B;IAEhD,SAAgB,cAAc,wBAA+B;IAE7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE7B;IAEH,OAAO,CAAC,gBAAgB,CAA6B;gBAGnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAAE,wBAAwB;IAC1C,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,OAAO,EACjB,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,UAAU,CAAC,EAAE,mBAAmB,YAAA;IAWnD,IACI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,KAAK,oBAER;IAED,IAAI,SAAS,0BAEZ;IAED,IAAI,QAAQ,iBAEX;IAED;;OAEG;IACG,cAAc;IAiGd,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;IAsCjB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;YA2CT,cAAc;YAMd,eAAe;IAM7B,OAAO,CAAC,WAAW;YAKL,kBAAkB;IAqChC;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,aAAa;IA2B/B,QAAQ;IAIR,OAAO,CAAC,YAAY;YAON,mBAAmB;CAMlC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/swarm/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAAoE,MAAM,aAAa,CAAC;AAEpH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAYhD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoBrD,UAAU,mBAAmB;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,UAAU,eAAe;IAEzB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,MAAM,WAAW;IAEjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAU;aA4BH,KAAK,EAAE,SAAS;aAChB,SAAS,EAAE,QAAQ;aACnB,UAAU,EAAE,QAAQ;aACpB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,OAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAnC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,uBAAuB,CAAiB;IAEhD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAiB;IAEzC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAwB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,QAAQ,CAAC,YAAY,yBAAgC;IACrD,QAAQ,CAAC,MAAM,cAAqB;IAE7B,WAAW,SAA8B;IAEhD,SAAgB,cAAc,wBAA+B;IAE7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE7B;IAEH,OAAO,CAAC,gBAAgB,CAA6B;gBAGnC,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,OAAO,EACjB,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,UAAU,CAAC,EAAE,mBAAmB,YAAA;IAWnD,IACI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,KAAK,oBAER;IAED,IAAI,SAAS,0BAEZ;IAED,IAAI,QAAQ,iBAEX;IAED;;OAEG;IACG,cAAc;IAiGd,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;IAsCjB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;YA2CT,cAAc;YAMd,eAAe;IAM7B,OAAO,CAAC,WAAW;YAKL,kBAAkB;IAqChC;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,aAAa;IA2B/B,QAAQ;IAIR,OAAO,CAAC,YAAY;YAON,mBAAmB;CAMlC"}
@@ -1,5 +1,6 @@
1
1
  import { Event } from '@dxos/async';
2
2
  import { PublicKey } from '@dxos/keys';
3
+ import { type PeerInfo } from '@dxos/messaging';
3
4
  import { SystemError } from '@dxos/protocols';
4
5
  import { type Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
5
6
  import { Connection } from './connection';
@@ -34,7 +35,7 @@ interface PeerCallbacks {
34
35
  /**
35
36
  * Returns true if the remote peer's offer should be accepted.
36
37
  */
37
- onOffer: (remoteId: PublicKey) => Promise<boolean>;
38
+ onOffer: (remote: PeerInfo) => Promise<boolean>;
38
39
  /**
39
40
  * Peer is available to connect.
40
41
  */
@@ -45,9 +46,9 @@ interface PeerCallbacks {
45
46
  * Can open and close multiple connections to the remote peer.
46
47
  */
47
48
  export declare class Peer {
48
- readonly id: PublicKey;
49
+ readonly remoteInfo: PeerInfo;
49
50
  readonly topic: PublicKey;
50
- readonly localPeerId: PublicKey;
51
+ readonly localInfo: PeerInfo;
51
52
  private readonly _signalMessaging;
52
53
  private readonly _protocolProvider;
53
54
  private readonly _transportFactory;
@@ -68,7 +69,7 @@ export declare class Peer {
68
69
  advertizing: boolean;
69
70
  initiating: boolean;
70
71
  readonly connectionDisplaced: Event<Connection>;
71
- constructor(id: PublicKey, topic: PublicKey, localPeerId: PublicKey, _signalMessaging: SignalMessenger, _protocolProvider: WireProtocolProvider, _transportFactory: TransportFactory, _connectionLimiter: ConnectionLimiter, _callbacks: PeerCallbacks);
72
+ constructor(remoteInfo: PeerInfo, topic: PublicKey, localInfo: PeerInfo, _signalMessaging: SignalMessenger, _protocolProvider: WireProtocolProvider, _transportFactory: TransportFactory, _connectionLimiter: ConnectionLimiter, _callbacks: PeerCallbacks);
72
73
  /**
73
74
  * Respond to remote offer.
74
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/swarm/peer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,qBAAa,wBAAyB,SAAQ,WAAW;;CAIxD;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAOD;;;GAGG;AACH,qBAAa,IAAI;aAuBG,EAAE,EAAE,SAAS;aACb,KAAK,EAAE,SAAS;aAChB,WAAW,EAAE,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IA7B7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAK;IACrB,kBAAkB,UAAQ;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAU;IAE1B,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACI,WAAW,UAAS;IAEpB,UAAU,UAAS;IAE1B,SAAgB,mBAAmB,oBAA2B;gBAG5C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,EACrB,gBAAgB,EAAE,eAAe,EACjC,iBAAiB,EAAE,oBAAoB,EACvC,iBAAiB,EAAE,gBAAgB,EACnC,kBAAkB,EAAE,iBAAiB,EACrC,UAAU,EAAE,aAAa;IAG5C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DrD;;OAEG;IACG,kBAAkB;IAyExB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA4GnB,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK;IAgB3B,QAAQ,CAAC,OAAO,EAAE,aAAa;IAU/B,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK;CAOjC"}
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/swarm/peer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAkB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,qBAAa,wBAAyB,SAAQ,WAAW;;CAIxD;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAOD;;;GAGG;AACH,qBAAa,IAAI;aAuBG,UAAU,EAAE,QAAQ;aACpB,KAAK,EAAE,SAAS;aAChB,SAAS,EAAE,QAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IA7B7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAK;IACrB,kBAAkB,UAAQ;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAU;IAE1B,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACI,WAAW,UAAS;IAEpB,UAAU,UAAS;IAE1B,SAAgB,mBAAmB,oBAA2B;gBAG5C,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,QAAQ,EAClB,gBAAgB,EAAE,eAAe,EACjC,iBAAiB,EAAE,oBAAoB,EACvC,iBAAiB,EAAE,gBAAgB,EACnC,kBAAkB,EAAE,iBAAiB,EACrC,UAAU,EAAE,aAAa;IAG5C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DrD;;OAEG;IACG,kBAAkB;IAyExB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiHnB,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK;IAgB3B,QAAQ,CAAC,OAAO,EAAE,aAAa;IAU/B,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK;CAOjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAID,qBAAa,WAAW;IAWV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0D;IACnG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAE9E,QAAQ,CAAC,UAAU,oBAA2B;IAE9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAEtB;gBAE4B,MAAM,EAAE,KAAK;IA+B1C,OAAO,CAAC,OAAO;IAmDf,OAAO;CAIR"}
1
+ {"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAID,qBAAa,WAAW;IAWV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA4D;IACrG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyD;IAEhF,QAAQ,CAAC,UAAU,oBAA2B;IAE9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAEtB;gBAE4B,MAAM,EAAE,KAAK;IA+B1C,OAAO,CAAC,OAAO;IAmDf,OAAO;CAIR"}
@@ -1,7 +1,6 @@
1
1
  import { ErrorStream } from '@dxos/debug';
2
2
  import { PublicKey } from '@dxos/keys';
3
- import { type Messenger } from '@dxos/messaging';
4
- import { type SwarmEvent } from '@dxos/protocols/proto/dxos/mesh/signal';
3
+ import { type SwarmEvent, type Messenger, type PeerInfo } from '@dxos/messaging';
5
4
  import { type Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
6
5
  import { type Connection } from './connection';
7
6
  import { type ConnectionLimiter } from './connection-limiter';
@@ -17,7 +16,7 @@ import { type WireProtocolProvider } from '../wire-protocol';
17
16
  */
18
17
  export declare class Swarm {
19
18
  private readonly _topic;
20
- private readonly _ownPeerId;
19
+ private readonly _ownPeer;
21
20
  private _topology;
22
21
  private readonly _protocolProvider;
23
22
  private readonly _messenger;
@@ -33,9 +32,10 @@ export declare class Swarm {
33
32
  */
34
33
  readonly _instanceId: string;
35
34
  readonly errors: ErrorStream;
36
- constructor(_topic: PublicKey, _ownPeerId: PublicKey, _topology: Topology, _protocolProvider: WireProtocolProvider, _messenger: Messenger, _transportFactory: TransportFactory, _label: string | undefined, _connectionLimiter: ConnectionLimiter, _initiationDelay?: number);
35
+ constructor(_topic: PublicKey, _ownPeer: PeerInfo, _topology: Topology, _protocolProvider: WireProtocolProvider, _messenger: Messenger, _transportFactory: TransportFactory, _label: string | undefined, _connectionLimiter: ConnectionLimiter, _initiationDelay?: number);
37
36
  get connections(): Connection[];
38
37
  get ownPeerId(): PublicKey;
38
+ get ownPeer(): PeerInfo;
39
39
  /**
40
40
  * Custom label assigned to this swarm. Used in devtools to display human-readable names for swarms.
41
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAGpE,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAkB,MAAM,WAAW,CAAC;AAClF,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,KAAK;IA0Cd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAlDnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,IAAI,CAAiB;IAE7B,OAAO,CAAC,gBAAgB,CAAC,CAA8B;IAOvD;;OAEG;IAEH,QAAQ,CAAC,WAAW,SAA8B;IAoBlD,QAAQ,CAAC,MAAM,cAAqB;gBAMjB,MAAM,EAAE,SAAS,EAEjB,UAAU,EAAE,SAAS,EAC9B,SAAS,EAAE,QAAQ,EACV,iBAAiB,EAAE,oBAAoB,EACvC,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,gBAAgB,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,SAAmB;IAkBtD,IAAI,WAAW,iBAId;IAED,IACI,SAAS,cAEZ;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IACI,KAAK,IAAI,KAAK,CAEjB;IAEK,IAAI;IAcJ,OAAO;IAWP,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAiBpC,YAAY,CAAC,UAAU,EAAE,UAAU;IAgC7B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB/C,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,SAAS;IAOT,QAAQ;IAId,OAAO,CAAC,gBAAgB;YAsDV,YAAY;IAO1B,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;YACW,mBAAmB;YA6BnB,gBAAgB;IAS9B,OAAO,CAAC,eAAe;CAGxB"}
1
+ {"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,UAAU,EAAwB,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAErH,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAGpE,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAkB,MAAM,WAAW,CAAC;AAClF,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,KAAK;IA2Cd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAlDnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,IAAI,CAAiB;IAE7B,OAAO,CAAC,gBAAgB,CAAC,CAA8B;IAQvD;;OAEG;IAEH,QAAQ,CAAC,WAAW,SAA8B;IAoBlD,QAAQ,CAAC,MAAM,cAAqB;gBAMjB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,EAC3B,SAAS,EAAE,QAAQ,EACV,iBAAiB,EAAE,oBAAoB,EACvC,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,gBAAgB,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,SAAmB;IAkBtD,IAAI,WAAW,iBAId;IAED,IAAI,SAAS,cAEZ;IAED,IACI,OAAO,aAEV;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IACI,KAAK,IAAI,KAAK,CAEjB;IAEK,IAAI;IAcJ,OAAO;IAWP,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAiBpC,YAAY,CAAC,UAAU,EAAE,UAAU;IAgC7B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB/C,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,SAAS;IAOT,QAAQ;IAId,OAAO,CAAC,gBAAgB;YAuDV,YAAY;IAO1B,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;YACW,mBAAmB;YA6BnB,gBAAgB;IAS9B,OAAO,CAAC,eAAe;CAGxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,6BAyLtD,CAAC"}
1
+ {"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,6BA4LtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"property-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/property-test-suite.ts"],"names":[],"mappings":"AAgBA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,YAuM7B,CAAC"}
1
+ {"version":3,"file":"property-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/property-test-suite.ts"],"names":[],"mappings":"AAgBA;;GAEG;AAEH,eAAO,MAAM,iBAAiB,YA0M7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/network-manager",
3
- "version": "0.6.8-main.3be982f",
3
+ "version": "0.6.8-staging.63bcb81",
4
4
  "description": "Network Manager",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -51,22 +51,23 @@
51
51
  "tiny-invariant": "^1.3.1",
52
52
  "ws": "^8.14.2",
53
53
  "xor-distance": "^2.0.0",
54
- "@dxos/async": "0.6.8-main.3be982f",
55
- "@dxos/config": "0.6.8-main.3be982f",
56
- "@dxos/context": "0.6.8-main.3be982f",
57
- "@dxos/codec-protobuf": "0.6.8-main.3be982f",
58
- "@dxos/credentials": "0.6.8-main.3be982f",
59
- "@dxos/crypto": "0.6.8-main.3be982f",
60
- "@dxos/debug": "0.6.8-main.3be982f",
61
- "@dxos/keys": "0.6.8-main.3be982f",
62
- "@dxos/log": "0.6.8-main.3be982f",
63
- "@dxos/invariant": "0.6.8-main.3be982f",
64
- "@dxos/messaging": "0.6.8-main.3be982f",
65
- "@dxos/node-std": "0.6.8-main.3be982f",
66
- "@dxos/rpc": "0.6.8-main.3be982f",
67
- "@dxos/teleport": "0.6.8-main.3be982f",
68
- "@dxos/util": "0.6.8-main.3be982f",
69
- "@dxos/protocols": "0.6.8-main.3be982f"
54
+ "@dxos/async": "0.6.8-staging.63bcb81",
55
+ "@dxos/codec-protobuf": "0.6.8-staging.63bcb81",
56
+ "@dxos/config": "0.6.8-staging.63bcb81",
57
+ "@dxos/crypto": "0.6.8-staging.63bcb81",
58
+ "@dxos/debug": "0.6.8-staging.63bcb81",
59
+ "@dxos/context": "0.6.8-staging.63bcb81",
60
+ "@dxos/credentials": "0.6.8-staging.63bcb81",
61
+ "@dxos/edge-client": "0.6.8-staging.63bcb81",
62
+ "@dxos/invariant": "0.6.8-staging.63bcb81",
63
+ "@dxos/keys": "0.6.8-staging.63bcb81",
64
+ "@dxos/log": "0.6.8-staging.63bcb81",
65
+ "@dxos/messaging": "0.6.8-staging.63bcb81",
66
+ "@dxos/node-std": "0.6.8-staging.63bcb81",
67
+ "@dxos/protocols": "0.6.8-staging.63bcb81",
68
+ "@dxos/rpc": "0.6.8-staging.63bcb81",
69
+ "@dxos/teleport": "0.6.8-staging.63bcb81",
70
+ "@dxos/util": "0.6.8-staging.63bcb81"
70
71
  },
71
72
  "devDependencies": {
72
73
  "@swc-node/register": "1.9.1",
@@ -76,7 +77,7 @@
76
77
  "fast-check": "^3.19.0",
77
78
  "fetch-mock": "^11.0.0",
78
79
  "typescript": "^5.5.4",
79
- "@dxos/signal": "0.6.8-main.3be982f"
80
+ "@dxos/signal": "0.6.8-staging.63bcb81"
80
81
  },
81
82
  "publishConfig": {
82
83
  "access": "public"
@@ -54,7 +54,7 @@ export class ConnectionLog {
54
54
  const connectionInfo: ConnectionInfo = {
55
55
  state: ConnectionState.CREATED,
56
56
  closeReason: connection.closeReason,
57
- remotePeerId: connection.remoteId,
57
+ remotePeerId: PublicKey.from(connection.remoteInfo.peerKey),
58
58
  sessionId: connection.sessionId,
59
59
  transport: connection.transport && Object.getPrototypeOf(connection.transport).constructor.name,
60
60
  protocolExtensions: [], // TODO(dmaretskyi): Fix.
@@ -6,7 +6,7 @@ import { Event, synchronized } from '@dxos/async';
6
6
  import { invariant } from '@dxos/invariant';
7
7
  import { PublicKey } from '@dxos/keys';
8
8
  import { log } from '@dxos/log';
9
- import { Messenger, type SignalManager } from '@dxos/messaging';
9
+ import { Messenger, type PeerInfo, type SignalManager } from '@dxos/messaging';
10
10
  import { trace } from '@dxos/protocols';
11
11
  import { ConnectionState } from '@dxos/protocols/proto/dxos/client/services';
12
12
  import { ComplexMap } from '@dxos/util';
@@ -32,9 +32,9 @@ export type SwarmOptions = {
32
32
  topic: PublicKey;
33
33
 
34
34
  /**
35
- * This node's peer id.
35
+ * This node's peer info.
36
36
  */
37
- peerId: PublicKey;
37
+ peerInfo?: PeerInfo;
38
38
 
39
39
  /**
40
40
  * Protocol to use for every connection.
@@ -56,7 +56,8 @@ export type SwarmOptions = {
56
56
  export type SwarmNetworkManagerOptions = {
57
57
  transportFactory: TransportFactory;
58
58
  signalManager: SignalManager;
59
- log?: boolean; // Log to devtools.
59
+ enableDevtoolsLogging?: boolean; // Log to devtools.
60
+ peerInfo?: PeerInfo;
60
61
  };
61
62
 
62
63
  /**
@@ -76,26 +77,28 @@ export class SwarmNetworkManager {
76
77
  private readonly _connectionLimiter: ConnectionLimiter;
77
78
  private readonly _connectionLog?: ConnectionLog;
78
79
  private readonly _instanceId = PublicKey.random().toHex();
80
+ private _peerInfo?: PeerInfo = undefined;
79
81
 
80
82
  private _connectionState = ConnectionState.ONLINE;
81
83
  public readonly connectionStateChanged = new Event<ConnectionState>();
82
84
  public readonly topicsUpdated = new Event<void>();
83
85
 
84
- constructor({ transportFactory, signalManager, log }: SwarmNetworkManagerOptions) {
86
+ constructor({ transportFactory, signalManager, enableDevtoolsLogging, peerInfo }: SwarmNetworkManagerOptions) {
85
87
  this._transportFactory = transportFactory;
86
88
 
87
89
  // Listen for signal manager events.
88
90
  this._signalManager = signalManager;
89
- this._signalManager.swarmEvent.on(({ topic, swarmEvent: event }) => this._swarms.get(topic)?.onSwarmEvent(event));
91
+ this._signalManager.swarmEvent.on((event) => this._swarms.get(event.topic)?.onSwarmEvent(event));
90
92
  this._messenger = new Messenger({ signalManager: this._signalManager });
91
93
  this._signalConnection = {
92
94
  join: (opts) => this._signalManager.join(opts),
93
95
  leave: (opts) => this._signalManager.leave(opts),
94
96
  };
97
+ this._peerInfo = peerInfo;
95
98
 
96
99
  this._connectionLimiter = new ConnectionLimiter();
97
100
  // TODO(burdon): Inject listener (generic pattern).
98
- if (log) {
101
+ if (enableDevtoolsLogging) {
99
102
  this._connectionLog = new ConnectionLog();
100
103
  }
101
104
  }
@@ -122,6 +125,10 @@ export class SwarmNetworkManager {
122
125
  return this._swarms.get(topic);
123
126
  }
124
127
 
128
+ setPeerInfo(peerInfo: PeerInfo) {
129
+ this._peerInfo = peerInfo;
130
+ }
131
+
125
132
  async open() {
126
133
  log.trace('dxos.mesh.network-manager.open', trace.begin({ id: this._instanceId }));
127
134
  await this._messenger.open();
@@ -146,23 +153,30 @@ export class SwarmNetworkManager {
146
153
  @synchronized
147
154
  async joinSwarm({
148
155
  topic,
149
- peerId,
156
+ peerInfo,
150
157
  topology,
151
158
  protocolProvider: protocol,
152
159
  label,
153
160
  }: SwarmOptions): Promise<SwarmConnection> {
154
161
  invariant(PublicKey.isPublicKey(topic));
155
- invariant(PublicKey.isPublicKey(peerId));
162
+ if (!peerInfo) {
163
+ peerInfo = {
164
+ peerKey: this._peerInfo?.peerKey ?? PublicKey.random().toHex(),
165
+ identityKey: this._peerInfo?.identityKey ?? PublicKey.random().toHex(),
166
+ };
167
+ }
168
+ invariant(PublicKey.from(peerInfo.peerKey));
169
+ invariant(PublicKey.from(peerInfo.identityKey!));
156
170
  invariant(topology);
157
171
  invariant(typeof protocol === 'function');
158
172
  if (this._swarms.has(topic)) {
159
173
  throw new Error(`Already connected to swarm: ${PublicKey.from(topic)}`);
160
174
  }
161
175
 
162
- log('joining', { topic: PublicKey.from(topic), peerId, topology: topology.toString() }); // TODO(burdon): Log peerId.
176
+ log('joining', { topic: PublicKey.from(topic), peerInfo, topology: topology.toString() }); // TODO(burdon): Log peerId.
163
177
  const swarm = new Swarm(
164
178
  topic,
165
- peerId,
179
+ peerInfo,
166
180
  topology,
167
181
  protocol,
168
182
  this._messenger,
@@ -181,7 +195,7 @@ export class SwarmNetworkManager {
181
195
  // Open before joining.
182
196
  await swarm.open();
183
197
 
184
- this._signalConnection.join({ topic, peerId }).catch((error) => log.catch(error));
198
+ this._signalConnection.join({ topic, peer: peerInfo }).catch((error) => log.catch(error));
185
199
 
186
200
  this.topicsUpdated.emit();
187
201
  this._connectionLog?.joinedSwarm(swarm);
@@ -204,7 +218,7 @@ export class SwarmNetworkManager {
204
218
 
205
219
  log('leaving', { topic: PublicKey.from(topic) });
206
220
  const swarm = this._swarms.get(topic)!;
207
- await this._signalConnection.leave({ topic, peerId: swarm.ownPeerId });
221
+ await this._signalConnection.leave({ topic, peer: swarm.ownPeer });
208
222
 
209
223
  const map = this._mappers.get(topic)!;
210
224
  map.destroy();
@@ -8,7 +8,7 @@ import { expect } from 'earljs';
8
8
  import waitForExpect from 'wait-for-expect';
9
9
 
10
10
  import { PublicKey } from '@dxos/keys';
11
- import { Messenger, WebsocketSignalManager } from '@dxos/messaging';
11
+ import { Messenger, type PeerInfo, WebsocketSignalManager } from '@dxos/messaging';
12
12
  import { runTestSignalServer, type SignalServerRunner } from '@dxos/signal';
13
13
  import { afterAll, afterTest, beforeAll, describe, test } from '@dxos/test';
14
14
 
@@ -26,7 +26,13 @@ describe('Signal Integration Test', () => {
26
26
  void broker.stop();
27
27
  });
28
28
 
29
- const setupPeer = async ({ peerId, topic = PublicKey.random() }: { peerId: PublicKey; topic?: PublicKey }) => {
29
+ const setupPeer = async ({
30
+ peer = { peerKey: PublicKey.random().toHex() },
31
+ topic = PublicKey.random(),
32
+ }: {
33
+ peer?: PeerInfo;
34
+ topic?: PublicKey;
35
+ }) => {
30
36
  const signalManager = new WebsocketSignalManager([{ server: broker.url() }]);
31
37
  await signalManager.open();
32
38
  afterTest(() => signalManager.close());
@@ -37,7 +43,7 @@ describe('Signal Integration Test', () => {
37
43
  messenger.open();
38
44
  afterTest(() => messenger.close());
39
45
  await messenger.listen({
40
- peerId,
46
+ peer,
41
47
  onMessage: async (message) => await messageRouter.receiveMessage(message),
42
48
  });
43
49
 
@@ -53,6 +59,8 @@ describe('Signal Integration Test', () => {
53
59
  });
54
60
 
55
61
  return {
62
+ peer,
63
+ topic,
56
64
  signalManager,
57
65
  messenger,
58
66
  receivedSignals,
@@ -61,21 +69,19 @@ describe('Signal Integration Test', () => {
61
69
  };
62
70
 
63
71
  test('two peers connecting', async () => {
64
- const peer1 = PublicKey.random();
65
- const peer2 = PublicKey.random();
66
72
  const topic = PublicKey.random();
67
73
 
68
- const peerNetworking1 = await setupPeer({ peerId: peer1, topic });
69
- const peerNetworking2 = await setupPeer({ peerId: peer2, topic });
74
+ const peerNetworking1 = await setupPeer({ topic });
75
+ const peerNetworking2 = await setupPeer({ topic });
70
76
  const promise1 = peerNetworking1.signalManager.swarmEvent.waitFor(
71
- ({ swarmEvent }) => !!swarmEvent.peerAvailable && peer2.equals(swarmEvent.peerAvailable.peer),
77
+ ({ peerAvailable }) => !!peerAvailable && peerNetworking2.peer.peerKey === peerAvailable.peer.peerKey,
72
78
  );
73
79
  const promise2 = peerNetworking1.signalManager.swarmEvent.waitFor(
74
- ({ swarmEvent }) => !!swarmEvent.peerAvailable && peer1.equals(swarmEvent.peerAvailable.peer),
80
+ ({ peerAvailable }) => !!peerAvailable && peerNetworking1.peer.peerKey === peerAvailable.peer.peerKey,
75
81
  );
76
82
 
77
- await peerNetworking1.signalManager.join({ topic, peerId: peer1 });
78
- await peerNetworking2.signalManager.join({ topic, peerId: peer2 });
83
+ await peerNetworking1.signalManager.join({ topic, peer: peerNetworking1.peer });
84
+ await peerNetworking2.signalManager.join({ topic, peer: peerNetworking2.peer });
79
85
 
80
86
  await promise1;
81
87
  await promise2;
@@ -83,8 +89,8 @@ describe('Signal Integration Test', () => {
83
89
  expect(
84
90
  await peerNetworking1.messageRouter.offer({
85
91
  topic,
86
- author: peer1,
87
- recipient: peer2,
92
+ author: peerNetworking1.peer,
93
+ recipient: peerNetworking2.peer,
88
94
  sessionId: PublicKey.random(),
89
95
  data: {
90
96
  offer: {},
@@ -95,8 +101,8 @@ describe('Signal Integration Test', () => {
95
101
  expect(
96
102
  await peerNetworking2.messageRouter.offer({
97
103
  topic,
98
- author: peer2,
99
- recipient: peer1,
104
+ author: peerNetworking2.peer,
105
+ recipient: peerNetworking1.peer,
100
106
  sessionId: PublicKey.random(),
101
107
  data: {
102
108
  offer: {},
@@ -107,8 +113,8 @@ describe('Signal Integration Test', () => {
107
113
  {
108
114
  const message: SignalMessage = {
109
115
  topic,
110
- author: peer1,
111
- recipient: peer2,
116
+ author: peerNetworking1.peer,
117
+ recipient: peerNetworking2.peer,
112
118
  sessionId: PublicKey.random(),
113
119
  data: {
114
120
  signal: { payload: { message: 'Hello world!' } },
@@ -125,8 +131,8 @@ describe('Signal Integration Test', () => {
125
131
  {
126
132
  const message: SignalMessage = {
127
133
  topic,
128
- author: peer2,
129
- recipient: peer1,
134
+ author: peerNetworking2.peer,
135
+ recipient: peerNetworking1.peer,
130
136
  sessionId: PublicKey.random(),
131
137
  data: {
132
138
  signal: { payload: { foo: 'bar' } },
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import { type PublicKey } from '@dxos/keys';
6
+ import { type PeerInfo } from '@dxos/messaging';
6
7
 
7
8
  /**
8
9
  * Signal peer discovery interface.
@@ -11,10 +12,10 @@ export interface SignalConnection {
11
12
  /**
12
13
  * Join topic on signal network, to be discoverable by other peers.
13
14
  */
14
- join(params: { topic: PublicKey; peerId: PublicKey }): Promise<void>;
15
+ join(params: { topic: PublicKey; peer: PeerInfo }): Promise<void>;
15
16
 
16
17
  /**
17
18
  * Leave topic on signal network, to stop being discoverable by other peers.
18
19
  */
19
- leave(params: { topic: PublicKey; peerId: PublicKey }): Promise<void>;
20
+ leave(params: { topic: PublicKey; peer: PeerInfo }): Promise<void>;
20
21
  }
@@ -3,19 +3,20 @@
3
3
  //
4
4
 
5
5
  import { type PublicKey } from '@dxos/keys';
6
+ import { type PeerInfo } from '@dxos/messaging';
6
7
  import { type Answer, type Offer, type Signal, type SignalBatch } from '@dxos/protocols/proto/dxos/mesh/swarm';
7
8
 
8
9
  export interface OfferMessage {
9
- author: PublicKey;
10
- recipient: PublicKey;
10
+ author: PeerInfo;
11
+ recipient: PeerInfo;
11
12
  topic: PublicKey;
12
13
  sessionId: PublicKey;
13
14
  data: { offer: Offer };
14
15
  }
15
16
 
16
17
  export interface SignalMessage {
17
- author: PublicKey;
18
- recipient: PublicKey;
18
+ author: PeerInfo;
19
+ recipient: PeerInfo;
19
20
  topic: PublicKey;
20
21
  sessionId: PublicKey;
21
22
  data: { signal?: Signal; signalBatch?: SignalBatch };