@dxos/echo-pipeline 0.3.11-next.e28df4f → 0.3.11-next.ee2b64c

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.
@@ -3045,6 +3045,7 @@ var MeshNetworkAdapter = class extends NetworkAdapter {
3045
3045
  constructor() {
3046
3046
  super(...arguments);
3047
3047
  this._extensions = /* @__PURE__ */ new Map();
3048
+ this._connected = new Trigger2();
3048
3049
  }
3049
3050
  /**
3050
3051
  * Emits `ready` event. That signals to `Repo` that it can start using the adapter.
@@ -3056,13 +3057,14 @@ var MeshNetworkAdapter = class extends NetworkAdapter {
3056
3057
  }
3057
3058
  connect(peerId) {
3058
3059
  this.peerId = peerId;
3060
+ this._connected.wake();
3059
3061
  }
3060
3062
  send(message) {
3061
3063
  const receiverId = message.targetId;
3062
3064
  const extension = this._extensions.get(receiverId);
3063
3065
  invariant10(extension, "Extension not found.", {
3064
3066
  F: __dxlog_file14,
3065
- L: 277,
3067
+ L: 279,
3066
3068
  S: this,
3067
3069
  A: [
3068
3070
  "extension",
@@ -3073,7 +3075,7 @@ var MeshNetworkAdapter = class extends NetworkAdapter {
3073
3075
  payload: cbor.encode(message)
3074
3076
  }).catch((err) => log13.catch(err, void 0, {
3075
3077
  F: __dxlog_file14,
3076
- L: 278,
3078
+ L: 280,
3077
3079
  S: this,
3078
3080
  C: (f, a) => f(...a)
3079
3081
  }));
@@ -3083,7 +3085,7 @@ var MeshNetworkAdapter = class extends NetworkAdapter {
3083
3085
  createExtension() {
3084
3086
  invariant10(this.peerId, "Peer id not set.", {
3085
3087
  F: __dxlog_file14,
3086
- L: 286,
3088
+ L: 288,
3087
3089
  S: this,
3088
3090
  A: [
3089
3091
  "this.peerId",
@@ -3095,11 +3097,15 @@ var MeshNetworkAdapter = class extends NetworkAdapter {
3095
3097
  peerId: this.peerId
3096
3098
  }, {
3097
3099
  onStartReplication: async (info, remotePeerId) => {
3098
- if (this._extensions.has(info.id)) {
3099
- return;
3100
+ await this._connected.wait();
3101
+ if (!this._extensions.has(info.id)) {
3102
+ peerInfo = info;
3103
+ this._extensions.set(info.id, extension);
3104
+ } else {
3105
+ this.emit("peer-disconnected", {
3106
+ peerId: info.id
3107
+ });
3100
3108
  }
3101
- peerInfo = info;
3102
- this._extensions.set(info.id, extension);
3103
3109
  this.emit("peer-candidate", {
3104
3110
  // TODO(mykola): Hack, stop abusing `peerMetadata` field.
3105
3111
  peerMetadata: {
@@ -3227,4 +3233,4 @@ export {
3227
3233
  SpaceManager,
3228
3234
  AutomergeHost
3229
3235
  };
3230
- //# sourceMappingURL=chunk-D7UMNYLJ.mjs.map
3236
+ //# sourceMappingURL=chunk-IOUMNVGJ.mjs.map