@dxos/teleport 0.8.4-main.67995b8 → 0.8.4-main.72ec0f3
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.
- package/dist/lib/browser/{chunk-537EXT24.mjs → chunk-WQHET3HS.mjs} +172 -152
- package/dist/lib/browser/{chunk-537EXT24.mjs.map → chunk-WQHET3HS.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +6 -2
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/node-esm/{chunk-4OIMGFCR.mjs → chunk-CDV4E7NJ.mjs} +172 -152
- package/dist/lib/node-esm/{chunk-4OIMGFCR.mjs.map → chunk-CDV4E7NJ.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +6 -2
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +1 -1
- package/dist/types/src/muxing/balancer.d.ts +1 -1
- package/dist/types/src/muxing/balancer.d.ts.map +1 -1
- package/dist/types/src/muxing/muxer.d.ts.map +1 -1
- package/dist/types/src/rpc-extension.d.ts.map +1 -1
- package/dist/types/src/teleport.d.ts.map +1 -1
- package/dist/types/src/testing/test-extension.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -16
- package/src/control-extension.ts +2 -2
- package/src/muxing/balancer.test.ts +3 -2
- package/src/muxing/balancer.ts +1 -1
- package/src/muxing/framer.test.ts +2 -1
- package/src/muxing/muxer.test.ts +4 -3
- package/src/muxing/muxer.ts +1 -1
- package/src/rpc-extension.ts +1 -1
- package/src/teleport.test.ts +1 -1
- package/src/teleport.ts +1 -1
- package/src/testing/test-extension-with-streams.ts +1 -1
- package/src/testing/test-extension.ts +2 -2
|
@@ -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,
|
|
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 {
|
|
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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
this._buffer
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
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 {
|
|
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
|
});
|
|
@@ -1141,36 +1147,44 @@ var __dxlog_file5 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/teleport.ts"
|
|
|
1141
1147
|
var CONTROL_HEARTBEAT_INTERVAL = 1e4;
|
|
1142
1148
|
var CONTROL_HEARTBEAT_TIMEOUT = 6e4;
|
|
1143
1149
|
var Teleport = class {
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
+
initiator;
|
|
1151
|
+
localPeerId;
|
|
1152
|
+
remotePeerId;
|
|
1153
|
+
_sessionId;
|
|
1154
|
+
_ctx = new Context3({
|
|
1155
|
+
onError: (err) => {
|
|
1156
|
+
log5.info("error in teleport context", {
|
|
1157
|
+
err
|
|
1158
|
+
}, {
|
|
1159
|
+
F: __dxlog_file5,
|
|
1160
|
+
L: 40,
|
|
1161
|
+
S: this,
|
|
1162
|
+
C: (f, a) => f(...a)
|
|
1163
|
+
});
|
|
1164
|
+
void this.destroy(err).catch(() => {
|
|
1165
|
+
log5.error("Error during destroy", err, {
|
|
1150
1166
|
F: __dxlog_file5,
|
|
1151
|
-
L:
|
|
1167
|
+
L: 42,
|
|
1152
1168
|
S: this,
|
|
1153
1169
|
C: (f, a) => f(...a)
|
|
1154
1170
|
});
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
this.
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
this._destroying = false;
|
|
1173
|
-
this._aborting = false;
|
|
1171
|
+
});
|
|
1172
|
+
}
|
|
1173
|
+
}, {
|
|
1174
|
+
F: __dxlog_file5,
|
|
1175
|
+
L: 38
|
|
1176
|
+
});
|
|
1177
|
+
_muxer = new Muxer();
|
|
1178
|
+
_control;
|
|
1179
|
+
_extensions = /* @__PURE__ */ new Map();
|
|
1180
|
+
_remoteExtensions = /* @__PURE__ */ new Set();
|
|
1181
|
+
_open = false;
|
|
1182
|
+
_destroying = false;
|
|
1183
|
+
_aborting = false;
|
|
1184
|
+
get isOpen() {
|
|
1185
|
+
return this._open;
|
|
1186
|
+
}
|
|
1187
|
+
constructor({ initiator, localPeerId, remotePeerId, ...rest }) {
|
|
1174
1188
|
invariant4(typeof initiator === "boolean", void 0, {
|
|
1175
1189
|
F: __dxlog_file5,
|
|
1176
1190
|
L: 63,
|
|
@@ -1283,9 +1297,6 @@ var Teleport = class {
|
|
|
1283
1297
|
});
|
|
1284
1298
|
});
|
|
1285
1299
|
}
|
|
1286
|
-
get isOpen() {
|
|
1287
|
-
return this._open;
|
|
1288
|
-
}
|
|
1289
1300
|
get sessionIdString() {
|
|
1290
1301
|
return this._sessionId ? this._sessionId.truncate() : "none";
|
|
1291
1302
|
}
|
|
@@ -1510,9 +1521,7 @@ _ts_decorate2([
|
|
|
1510
1521
|
// src/testing/test-builder.ts
|
|
1511
1522
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-builder.ts";
|
|
1512
1523
|
var TestBuilder = class {
|
|
1513
|
-
|
|
1514
|
-
this._peers = /* @__PURE__ */ new Set();
|
|
1515
|
-
}
|
|
1524
|
+
_peers = /* @__PURE__ */ new Set();
|
|
1516
1525
|
createPeer(opts) {
|
|
1517
1526
|
const peer = opts.factory();
|
|
1518
1527
|
this._peers.add(peer);
|
|
@@ -1627,9 +1636,10 @@ var TestBuilder = class {
|
|
|
1627
1636
|
}
|
|
1628
1637
|
};
|
|
1629
1638
|
var TestPeer = class {
|
|
1639
|
+
peerId;
|
|
1640
|
+
connections = /* @__PURE__ */ new Set();
|
|
1630
1641
|
constructor(peerId = PublicKey2.random()) {
|
|
1631
1642
|
this.peerId = peerId;
|
|
1632
|
-
this.connections = /* @__PURE__ */ new Set();
|
|
1633
1643
|
}
|
|
1634
1644
|
async onOpen(connection) {
|
|
1635
1645
|
}
|
|
@@ -1696,6 +1706,10 @@ var pipeStreams = (stream1, stream2) => {
|
|
|
1696
1706
|
});
|
|
1697
1707
|
};
|
|
1698
1708
|
var TestConnection = class {
|
|
1709
|
+
localPeerId;
|
|
1710
|
+
remotePeerId;
|
|
1711
|
+
initiator;
|
|
1712
|
+
teleport;
|
|
1699
1713
|
constructor(localPeerId, remotePeerId, initiator) {
|
|
1700
1714
|
this.localPeerId = localPeerId;
|
|
1701
1715
|
this.remotePeerId = remotePeerId;
|
|
@@ -1714,18 +1728,21 @@ var TestConnection = class {
|
|
|
1714
1728
|
};
|
|
1715
1729
|
|
|
1716
1730
|
// src/testing/test-extension.ts
|
|
1717
|
-
import {
|
|
1731
|
+
import { Trigger as Trigger2, asyncTimeout as asyncTimeout3 } from "@dxos/async";
|
|
1718
1732
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1719
1733
|
import { log as log7 } from "@dxos/log";
|
|
1720
1734
|
import { schema as schema3 } from "@dxos/protocols/proto";
|
|
1721
1735
|
import { createProtoRpcPeer as createProtoRpcPeer2 } from "@dxos/rpc";
|
|
1722
1736
|
var __dxlog_file7 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension.ts";
|
|
1723
1737
|
var TestExtension = class {
|
|
1738
|
+
callbacks;
|
|
1739
|
+
open = new Trigger2();
|
|
1740
|
+
closed = new Trigger2();
|
|
1741
|
+
aborted = new Trigger2();
|
|
1742
|
+
extensionContext;
|
|
1743
|
+
_rpc;
|
|
1724
1744
|
constructor(callbacks = {}) {
|
|
1725
1745
|
this.callbacks = callbacks;
|
|
1726
|
-
this.open = new Trigger2();
|
|
1727
|
-
this.closed = new Trigger2();
|
|
1728
|
-
this.aborted = new Trigger2();
|
|
1729
1746
|
}
|
|
1730
1747
|
get remotePeerId() {
|
|
1731
1748
|
return this.extensionContext?.remotePeerId;
|
|
@@ -1828,12 +1845,15 @@ import { schema as schema4 } from "@dxos/protocols/proto";
|
|
|
1828
1845
|
import { createProtoRpcPeer as createProtoRpcPeer3 } from "@dxos/rpc";
|
|
1829
1846
|
var __dxlog_file8 = "/__w/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
|
|
1830
1847
|
var TestExtensionWithStreams = class {
|
|
1848
|
+
callbacks;
|
|
1849
|
+
open = new Trigger3();
|
|
1850
|
+
closed = new Trigger3();
|
|
1851
|
+
aborted = new Trigger3();
|
|
1852
|
+
_streams = /* @__PURE__ */ new Map();
|
|
1853
|
+
extensionContext;
|
|
1854
|
+
_rpc;
|
|
1831
1855
|
constructor(callbacks = {}) {
|
|
1832
1856
|
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
1857
|
}
|
|
1838
1858
|
get remotePeerId() {
|
|
1839
1859
|
return this.extensionContext?.remotePeerId;
|
|
@@ -2091,4 +2111,4 @@ export {
|
|
|
2091
2111
|
TestExtension,
|
|
2092
2112
|
TestExtensionWithStreams
|
|
2093
2113
|
};
|
|
2094
|
-
//# sourceMappingURL=chunk-
|
|
2114
|
+
//# sourceMappingURL=chunk-WQHET3HS.mjs.map
|