@dxos/teleport 0.8.4-main.b97322e → 0.8.4-main.bc674ce

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 (35) hide show
  1. package/dist/lib/browser/{chunk-537EXT24.mjs → chunk-ITQR2ADK.mjs} +189 -165
  2. package/dist/lib/browser/chunk-ITQR2ADK.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +9 -5
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +1 -1
  7. package/dist/lib/node-esm/{chunk-4OIMGFCR.mjs → chunk-TJCCT23E.mjs} +189 -165
  8. package/dist/lib/node-esm/chunk-TJCCT23E.mjs.map +7 -0
  9. package/dist/lib/node-esm/index.mjs +9 -5
  10. package/dist/lib/node-esm/index.mjs.map +3 -3
  11. package/dist/lib/node-esm/meta.json +1 -1
  12. package/dist/lib/node-esm/testing/index.mjs +1 -1
  13. package/dist/types/src/muxing/balancer.d.ts +1 -1
  14. package/dist/types/src/muxing/balancer.d.ts.map +1 -1
  15. package/dist/types/src/muxing/muxer.d.ts.map +1 -1
  16. package/dist/types/src/rpc-extension.d.ts +2 -2
  17. package/dist/types/src/rpc-extension.d.ts.map +1 -1
  18. package/dist/types/src/teleport.d.ts +2 -2
  19. package/dist/types/src/teleport.d.ts.map +1 -1
  20. package/dist/types/src/testing/test-extension.d.ts.map +1 -1
  21. package/dist/types/tsconfig.tsbuildinfo +1 -1
  22. package/package.json +19 -13
  23. package/src/control-extension.ts +2 -2
  24. package/src/muxing/balancer.test.ts +3 -2
  25. package/src/muxing/balancer.ts +1 -1
  26. package/src/muxing/framer.test.ts +2 -1
  27. package/src/muxing/muxer.test.ts +4 -3
  28. package/src/muxing/muxer.ts +8 -4
  29. package/src/rpc-extension.ts +3 -3
  30. package/src/teleport.test.ts +1 -1
  31. package/src/teleport.ts +4 -4
  32. package/src/testing/test-extension-with-streams.ts +1 -1
  33. package/src/testing/test-extension.ts +2 -2
  34. package/dist/lib/browser/chunk-537EXT24.mjs.map +0 -7
  35. package/dist/lib/node-esm/chunk-4OIMGFCR.mjs.map +0 -7
@@ -116,7 +116,7 @@ import { PublicKey as PublicKey2 } from "@dxos/keys";
116
116
  import { log as log6 } from "@dxos/log";
117
117
 
118
118
  // src/teleport.ts
119
- import { runInContextAsync, synchronized, scheduleTask } from "@dxos/async";
119
+ import { runInContextAsync, scheduleTask, synchronized } from "@dxos/async";
120
120
  import { Context as Context3 } from "@dxos/context";
121
121
  import { failUndefined as failUndefined2 } from "@dxos/debug";
122
122
  import { invariant as invariant4 } from "@dxos/invariant";
@@ -125,7 +125,7 @@ import { log as log5, logInfo as logInfo2 } from "@dxos/log";
125
125
  import { RpcClosedError as RpcClosedError2, TimeoutError as TimeoutError2 } from "@dxos/protocols";
126
126
 
127
127
  // src/control-extension.ts
128
- import { asyncTimeout, scheduleTaskInterval, TimeoutError as AsyncTimeoutError } from "@dxos/async";
128
+ import { TimeoutError as AsyncTimeoutError, asyncTimeout, scheduleTaskInterval } from "@dxos/async";
129
129
  import { Context } from "@dxos/context";
130
130
  import { log } from "@dxos/log";
131
131
  import { RpcClosedError } from "@dxos/protocols";
@@ -136,19 +136,24 @@ var __dxlog_file = "/__w/dxos/dxos/packages/core/mesh/teleport/src/control-exten
136
136
  var HEARTBEAT_RTT_WARN_THRESH = 1e4;
137
137
  var DEBUG_PRINT_HEARTBEAT = false;
138
138
  var ControlExtension = class {
139
+ opts;
140
+ localPeerId;
141
+ remotePeerId;
142
+ _ctx = new Context({
143
+ onError: (err) => {
144
+ this._extensionContext.close(err);
145
+ }
146
+ }, {
147
+ F: __dxlog_file,
148
+ L: 31
149
+ });
150
+ onExtensionRegistered = new Callback();
151
+ _extensionContext;
152
+ _rpc;
139
153
  constructor(opts, localPeerId, remotePeerId) {
140
154
  this.opts = opts;
141
155
  this.localPeerId = localPeerId;
142
156
  this.remotePeerId = remotePeerId;
143
- this._ctx = new Context({
144
- onError: (err) => {
145
- this._extensionContext.close(err);
146
- }
147
- }, {
148
- F: __dxlog_file,
149
- L: 31
150
- });
151
- this.onExtensionRegistered = new Callback();
152
157
  }
153
158
  async registerExtension(name) {
154
159
  await this._rpc.rpc.Control.registerExtension({
@@ -284,84 +289,82 @@ import { log as log2 } from "@dxos/log";
284
289
  var __dxlog_file2 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/muxing/framer.ts";
285
290
  var FRAME_LENGTH_SIZE = 2;
286
291
  var Framer = class {
287
- constructor() {
288
- // private readonly _tagBuffer = Buffer.alloc(4)
289
- this._messageCb = void 0;
290
- this._subscribeCb = void 0;
291
- this._buffer = void 0;
292
- this._sendCallbacks = [];
293
- this._bytesSent = 0;
294
- this._bytesReceived = 0;
295
- this._writable = true;
296
- this.drain = new Event();
297
- // TODO(egorgripasov): Consider using a Transform stream if it provides better backpressure handling.
298
- this._stream = new Duplex({
299
- objectMode: false,
300
- read: () => {
301
- this._processResponseQueue();
302
- },
303
- write: (chunk, encoding, callback) => {
304
- invariant(!this._subscribeCb, "Internal Framer bug. Concurrent writes detected.", {
305
- F: __dxlog_file2,
306
- L: 40,
307
- S: this,
308
- A: [
309
- "!this._subscribeCb",
310
- "'Internal Framer bug. Concurrent writes detected.'"
311
- ]
312
- });
313
- this._bytesReceived += chunk.length;
314
- if (this._buffer && this._buffer.length > 0) {
315
- this._buffer = Buffer.concat([
316
- this._buffer,
317
- chunk
318
- ]);
319
- } else {
320
- this._buffer = chunk;
321
- }
322
- if (this._messageCb) {
292
+ // private readonly _tagBuffer = Buffer.alloc(4)
293
+ _messageCb = void 0;
294
+ _subscribeCb = void 0;
295
+ _buffer = void 0;
296
+ _sendCallbacks = [];
297
+ _bytesSent = 0;
298
+ _bytesReceived = 0;
299
+ _writable = true;
300
+ drain = new Event();
301
+ // TODO(egorgripasov): Consider using a Transform stream if it provides better backpressure handling.
302
+ _stream = new Duplex({
303
+ objectMode: false,
304
+ read: () => {
305
+ this._processResponseQueue();
306
+ },
307
+ write: (chunk, encoding, callback) => {
308
+ invariant(!this._subscribeCb, "Internal Framer bug. Concurrent writes detected.", {
309
+ F: __dxlog_file2,
310
+ L: 40,
311
+ S: this,
312
+ A: [
313
+ "!this._subscribeCb",
314
+ "'Internal Framer bug. Concurrent writes detected.'"
315
+ ]
316
+ });
317
+ this._bytesReceived += chunk.length;
318
+ if (this._buffer && this._buffer.length > 0) {
319
+ this._buffer = Buffer.concat([
320
+ this._buffer,
321
+ chunk
322
+ ]);
323
+ } else {
324
+ this._buffer = chunk;
325
+ }
326
+ if (this._messageCb) {
327
+ this._popFrames();
328
+ callback();
329
+ } else {
330
+ this._subscribeCb = () => {
323
331
  this._popFrames();
332
+ this._subscribeCb = void 0;
324
333
  callback();
325
- } else {
326
- this._subscribeCb = () => {
327
- this._popFrames();
328
- this._subscribeCb = void 0;
329
- callback();
330
- };
331
- }
332
- }
333
- });
334
- this.port = {
335
- send: (message) => {
336
- return new Promise((resolve) => {
337
- const frame = encodeFrame(message);
338
- this._bytesSent += frame.length;
339
- this._writable = this._stream.push(frame);
340
- if (!this._writable) {
341
- this._sendCallbacks.push(resolve);
342
- } else {
343
- resolve();
344
- }
345
- });
346
- },
347
- subscribe: (callback) => {
348
- invariant(!this._messageCb, "Rpc port already has a message listener.", {
349
- F: __dxlog_file2,
350
- L: 79,
351
- S: this,
352
- A: [
353
- "!this._messageCb",
354
- "'Rpc port already has a message listener.'"
355
- ]
356
- });
357
- this._messageCb = callback;
358
- this._subscribeCb?.();
359
- return () => {
360
- this._messageCb = void 0;
361
334
  };
362
335
  }
363
- };
364
- }
336
+ }
337
+ });
338
+ port = {
339
+ send: (message) => {
340
+ return new Promise((resolve) => {
341
+ const frame = encodeFrame(message);
342
+ this._bytesSent += frame.length;
343
+ this._writable = this._stream.push(frame);
344
+ if (!this._writable) {
345
+ this._sendCallbacks.push(resolve);
346
+ } else {
347
+ resolve();
348
+ }
349
+ });
350
+ },
351
+ subscribe: (callback) => {
352
+ invariant(!this._messageCb, "Rpc port already has a message listener.", {
353
+ F: __dxlog_file2,
354
+ L: 79,
355
+ S: this,
356
+ A: [
357
+ "!this._messageCb",
358
+ "'Rpc port already has a message listener.'"
359
+ ]
360
+ });
361
+ this._messageCb = callback;
362
+ this._subscribeCb?.();
363
+ return () => {
364
+ this._messageCb = void 0;
365
+ };
366
+ }
367
+ };
365
368
  get stream() {
366
369
  return this._stream;
367
370
  }
@@ -444,7 +447,7 @@ var encodeFrame = (payload) => {
444
447
 
445
448
  // src/muxing/muxer.ts
446
449
  import { Duplex as Duplex2 } from "@dxos/node-std/stream";
447
- import { scheduleTaskInterval as scheduleTaskInterval2, Event as Event3, Trigger, asyncTimeout as asyncTimeout2 } from "@dxos/async";
450
+ import { Event as Event3, Trigger, asyncTimeout as asyncTimeout2, scheduleTaskInterval as scheduleTaskInterval2 } from "@dxos/async";
448
451
  import { Context as Context2 } from "@dxos/context";
449
452
  import { failUndefined } from "@dxos/debug";
450
453
  import { invariant as invariant3 } from "@dxos/invariant";
@@ -460,16 +463,18 @@ import { log as log3 } from "@dxos/log";
460
463
  var __dxlog_file3 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/muxing/balancer.ts";
461
464
  var MAX_CHUNK_SIZE = 8192;
462
465
  var Balancer = class {
466
+ _sysChannelId;
467
+ _lastCallerIndex = 0;
468
+ _channels = [];
469
+ _framer = new Framer();
470
+ // TODO(egorgripasov): Will cause a memory leak if channels do not appreciate the backpressure.
471
+ _sendBuffers = /* @__PURE__ */ new Map();
472
+ _receiveBuffers = /* @__PURE__ */ new Map();
473
+ _sending = false;
474
+ incomingData = new Event2();
475
+ stream = this._framer.stream;
463
476
  constructor(_sysChannelId) {
464
477
  this._sysChannelId = _sysChannelId;
465
- this._lastCallerIndex = 0;
466
- this._channels = [];
467
- this._framer = new Framer();
468
- this._sendBuffers = /* @__PURE__ */ new Map();
469
- this._receiveBuffers = /* @__PURE__ */ new Map();
470
- this._sending = false;
471
- this.incomingData = new Event2();
472
- this.stream = this._framer.stream;
473
478
  this._channels.push(_sysChannelId);
474
479
  this._framer.port.subscribe(this._processIncomingMessage.bind(this));
475
480
  }
@@ -677,23 +682,24 @@ var MAX_SAFE_FRAME_SIZE = 1e6;
677
682
  var SYSTEM_CHANNEL_ID = 0;
678
683
  var GRACEFUL_CLOSE_TIMEOUT = 3e3;
679
684
  var Muxer = class {
685
+ _balancer = new Balancer(SYSTEM_CHANNEL_ID);
686
+ _channelsByLocalId = /* @__PURE__ */ new Map();
687
+ _channelsByTag = /* @__PURE__ */ new Map();
688
+ _ctx = new Context2(void 0, {
689
+ F: __dxlog_file4,
690
+ L: 108
691
+ });
692
+ _sessionId;
693
+ _nextId = 1;
694
+ _closing = false;
695
+ _destroying = false;
696
+ _disposed = false;
697
+ _lastStats = void 0;
698
+ _lastChannelStats = /* @__PURE__ */ new Map();
699
+ afterClosed = new Event3();
700
+ statsUpdated = new Event3();
701
+ stream = this._balancer.stream;
680
702
  constructor() {
681
- this._balancer = new Balancer(SYSTEM_CHANNEL_ID);
682
- this._channelsByLocalId = /* @__PURE__ */ new Map();
683
- this._channelsByTag = /* @__PURE__ */ new Map();
684
- this._ctx = new Context2(void 0, {
685
- F: __dxlog_file4,
686
- L: 108
687
- });
688
- this._nextId = 1;
689
- this._closing = false;
690
- this._destroying = false;
691
- this._disposed = false;
692
- this._lastStats = void 0;
693
- this._lastChannelStats = /* @__PURE__ */ new Map();
694
- this.afterClosed = new Event3();
695
- this.statsUpdated = new Event3();
696
- this.stream = this._balancer.stream;
697
703
  this._balancer.incomingData.on(async (msg) => {
698
704
  await this._handleCommand(Command.decode(msg));
699
705
  });
@@ -861,14 +867,16 @@ var Muxer = class {
861
867
  });
862
868
  await this._dispose(err2);
863
869
  });
864
- await asyncTimeout2(this._dispose(err), GRACEFUL_CLOSE_TIMEOUT, new TimeoutError("gracefully closing muxer"));
870
+ await asyncTimeout2(this._dispose(err), GRACEFUL_CLOSE_TIMEOUT, new TimeoutError({
871
+ message: "gracefully closing muxer"
872
+ }));
865
873
  }
866
874
  // force close without confirmation
867
875
  async destroy(err) {
868
876
  if (this._destroying) {
869
877
  log4("already destroying, ignoring destroy request", void 0, {
870
878
  F: __dxlog_file4,
871
- L: 299,
879
+ L: 303,
872
880
  S: this,
873
881
  C: (f, a) => f(...a)
874
882
  });
@@ -879,7 +887,7 @@ var Muxer = class {
879
887
  if (this._closing) {
880
888
  log4("destroy cancelling graceful close", void 0, {
881
889
  F: __dxlog_file4,
882
- L: 305,
890
+ L: 309,
883
891
  S: this,
884
892
  C: (f, a) => f(...a)
885
893
  });
@@ -894,7 +902,7 @@ var Muxer = class {
894
902
  err: err2
895
903
  }, {
896
904
  F: __dxlog_file4,
897
- L: 318,
905
+ L: 322,
898
906
  S: this,
899
907
  C: (f, a) => f(...a)
900
908
  });
@@ -905,7 +913,7 @@ var Muxer = class {
905
913
  err: err2
906
914
  }, {
907
915
  F: __dxlog_file4,
908
- L: 323,
916
+ L: 327,
909
917
  S: this,
910
918
  C: (f, a) => f(...a)
911
919
  });
@@ -916,7 +924,7 @@ var Muxer = class {
916
924
  if (this._disposed) {
917
925
  log4("already destroyed, ignoring dispose request", void 0, {
918
926
  F: __dxlog_file4,
919
- L: 331,
927
+ L: 335,
920
928
  S: this,
921
929
  C: (f, a) => f(...a)
922
930
  });
@@ -939,7 +947,7 @@ var Muxer = class {
939
947
  cmd
940
948
  }, {
941
949
  F: __dxlog_file4,
942
- L: 354,
950
+ L: 358,
943
951
  S: this,
944
952
  C: (f, a) => f(...a)
945
953
  });
@@ -949,7 +957,7 @@ var Muxer = class {
949
957
  if (!this._closing) {
950
958
  log4("received peer close, initiating my own graceful close", void 0, {
951
959
  F: __dxlog_file4,
952
- L: 360,
960
+ L: 364,
953
961
  S: this,
954
962
  C: (f, a) => f(...a)
955
963
  });
@@ -957,7 +965,7 @@ var Muxer = class {
957
965
  } else {
958
966
  log4("received close from peer, already closing", void 0, {
959
967
  F: __dxlog_file4,
960
- L: 363,
968
+ L: 367,
961
969
  S: this,
962
970
  C: (f, a) => f(...a)
963
971
  });
@@ -986,7 +994,7 @@ var Muxer = class {
986
994
  tag: stream.tag
987
995
  }, {
988
996
  F: __dxlog_file4,
989
- L: 392,
997
+ L: 396,
990
998
  S: this,
991
999
  C: (f, a) => f(...a)
992
1000
  });
@@ -1041,7 +1049,7 @@ var Muxer = class {
1041
1049
  threshold: MAX_SAFE_FRAME_SIZE
1042
1050
  }, {
1043
1051
  F: __dxlog_file4,
1044
- L: 442,
1052
+ L: 446,
1045
1053
  S: this,
1046
1054
  C: (f, a) => f(...a)
1047
1055
  });
@@ -1064,7 +1072,7 @@ var Muxer = class {
1064
1072
  err
1065
1073
  }, {
1066
1074
  F: __dxlog_file4,
1067
- L: 465,
1075
+ L: 469,
1068
1076
  S: this,
1069
1077
  C: (f, a) => f(...a)
1070
1078
  });
@@ -1141,36 +1149,44 @@ var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/teleport.ts"
1141
1149
  var CONTROL_HEARTBEAT_INTERVAL = 1e4;
1142
1150
  var CONTROL_HEARTBEAT_TIMEOUT = 6e4;
1143
1151
  var Teleport = class {
1144
- constructor({ initiator, localPeerId, remotePeerId, ...rest }) {
1145
- this._ctx = new Context3({
1146
- onError: (err) => {
1147
- log5.info("error in teleport context", {
1148
- err
1149
- }, {
1152
+ initiator;
1153
+ localPeerId;
1154
+ remotePeerId;
1155
+ _sessionId;
1156
+ _ctx = new Context3({
1157
+ onError: (err) => {
1158
+ log5.info("error in teleport context", {
1159
+ err
1160
+ }, {
1161
+ F: __dxlog_file5,
1162
+ L: 40,
1163
+ S: this,
1164
+ C: (f, a) => f(...a)
1165
+ });
1166
+ void this.destroy(err).catch(() => {
1167
+ log5.error("Error during destroy", err, {
1150
1168
  F: __dxlog_file5,
1151
- L: 40,
1169
+ L: 42,
1152
1170
  S: this,
1153
1171
  C: (f, a) => f(...a)
1154
1172
  });
1155
- void this.destroy(err).catch(() => {
1156
- log5.error("Error during destroy", err, {
1157
- F: __dxlog_file5,
1158
- L: 42,
1159
- S: this,
1160
- C: (f, a) => f(...a)
1161
- });
1162
- });
1163
- }
1164
- }, {
1165
- F: __dxlog_file5,
1166
- L: 38
1167
- });
1168
- this._muxer = new Muxer();
1169
- this._extensions = /* @__PURE__ */ new Map();
1170
- this._remoteExtensions = /* @__PURE__ */ new Set();
1171
- this._open = false;
1172
- this._destroying = false;
1173
- this._aborting = false;
1173
+ });
1174
+ }
1175
+ }, {
1176
+ F: __dxlog_file5,
1177
+ L: 38
1178
+ });
1179
+ _muxer = new Muxer();
1180
+ _control;
1181
+ _extensions = /* @__PURE__ */ new Map();
1182
+ _remoteExtensions = /* @__PURE__ */ new Set();
1183
+ _open = false;
1184
+ _destroying = false;
1185
+ _aborting = false;
1186
+ get isOpen() {
1187
+ return this._open;
1188
+ }
1189
+ constructor({ initiator, localPeerId, remotePeerId, ...rest }) {
1174
1190
  invariant4(typeof initiator === "boolean", void 0, {
1175
1191
  F: __dxlog_file5,
1176
1192
  L: 63,
@@ -1214,7 +1230,9 @@ var Teleport = class {
1214
1230
  S: this,
1215
1231
  C: (f, a) => f(...a)
1216
1232
  });
1217
- this.abort(new TimeoutError2("control extension")).catch((err) => log5.catch(err, void 0, {
1233
+ this.abort(new TimeoutError2({
1234
+ message: "control extension"
1235
+ })).catch((err) => log5.catch(err, void 0, {
1218
1236
  F: __dxlog_file5,
1219
1237
  L: 79,
1220
1238
  S: this,
@@ -1283,9 +1301,6 @@ var Teleport = class {
1283
1301
  });
1284
1302
  });
1285
1303
  }
1286
- get isOpen() {
1287
- return this._open;
1288
- }
1289
1304
  get sessionIdString() {
1290
1305
  return this._sessionId ? this._sessionId.truncate() : "none";
1291
1306
  }
@@ -1510,9 +1525,7 @@ _ts_decorate2([
1510
1525
  // src/testing/test-builder.ts
1511
1526
  var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-builder.ts";
1512
1527
  var TestBuilder = class {
1513
- constructor() {
1514
- this._peers = /* @__PURE__ */ new Set();
1515
- }
1528
+ _peers = /* @__PURE__ */ new Set();
1516
1529
  createPeer(opts) {
1517
1530
  const peer = opts.factory();
1518
1531
  this._peers.add(peer);
@@ -1627,9 +1640,10 @@ var TestBuilder = class {
1627
1640
  }
1628
1641
  };
1629
1642
  var TestPeer = class {
1643
+ peerId;
1644
+ connections = /* @__PURE__ */ new Set();
1630
1645
  constructor(peerId = PublicKey2.random()) {
1631
1646
  this.peerId = peerId;
1632
- this.connections = /* @__PURE__ */ new Set();
1633
1647
  }
1634
1648
  async onOpen(connection) {
1635
1649
  }
@@ -1696,6 +1710,10 @@ var pipeStreams = (stream1, stream2) => {
1696
1710
  });
1697
1711
  };
1698
1712
  var TestConnection = class {
1713
+ localPeerId;
1714
+ remotePeerId;
1715
+ initiator;
1716
+ teleport;
1699
1717
  constructor(localPeerId, remotePeerId, initiator) {
1700
1718
  this.localPeerId = localPeerId;
1701
1719
  this.remotePeerId = remotePeerId;
@@ -1714,18 +1732,21 @@ var TestConnection = class {
1714
1732
  };
1715
1733
 
1716
1734
  // src/testing/test-extension.ts
1717
- import { asyncTimeout as asyncTimeout3, Trigger as Trigger2 } from "@dxos/async";
1735
+ import { Trigger as Trigger2, asyncTimeout as asyncTimeout3 } from "@dxos/async";
1718
1736
  import { invariant as invariant6 } from "@dxos/invariant";
1719
1737
  import { log as log7 } from "@dxos/log";
1720
1738
  import { schema as schema3 } from "@dxos/protocols/proto";
1721
1739
  import { createProtoRpcPeer as createProtoRpcPeer2 } from "@dxos/rpc";
1722
1740
  var __dxlog_file7 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension.ts";
1723
1741
  var TestExtension = class {
1742
+ callbacks;
1743
+ open = new Trigger2();
1744
+ closed = new Trigger2();
1745
+ aborted = new Trigger2();
1746
+ extensionContext;
1747
+ _rpc;
1724
1748
  constructor(callbacks = {}) {
1725
1749
  this.callbacks = callbacks;
1726
- this.open = new Trigger2();
1727
- this.closed = new Trigger2();
1728
- this.aborted = new Trigger2();
1729
1750
  }
1730
1751
  get remotePeerId() {
1731
1752
  return this.extensionContext?.remotePeerId;
@@ -1828,12 +1849,15 @@ import { schema as schema4 } from "@dxos/protocols/proto";
1828
1849
  import { createProtoRpcPeer as createProtoRpcPeer3 } from "@dxos/rpc";
1829
1850
  var __dxlog_file8 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
1830
1851
  var TestExtensionWithStreams = class {
1852
+ callbacks;
1853
+ open = new Trigger3();
1854
+ closed = new Trigger3();
1855
+ aborted = new Trigger3();
1856
+ _streams = /* @__PURE__ */ new Map();
1857
+ extensionContext;
1858
+ _rpc;
1831
1859
  constructor(callbacks = {}) {
1832
1860
  this.callbacks = callbacks;
1833
- this.open = new Trigger3();
1834
- this.closed = new Trigger3();
1835
- this.aborted = new Trigger3();
1836
- this._streams = /* @__PURE__ */ new Map();
1837
1861
  }
1838
1862
  get remotePeerId() {
1839
1863
  return this.extensionContext?.remotePeerId;
@@ -2091,4 +2115,4 @@ export {
2091
2115
  TestExtension,
2092
2116
  TestExtensionWithStreams
2093
2117
  };
2094
- //# sourceMappingURL=chunk-537EXT24.mjs.map
2118
+ //# sourceMappingURL=chunk-ITQR2ADK.mjs.map