@dxos/teleport 0.3.4 → 0.3.5-main.1ae5af4
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-J3RZ6SXA.mjs → chunk-PWWDYMDW.mjs} +197 -80
- package/dist/lib/browser/chunk-PWWDYMDW.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/node/index.cjs +195 -78
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +194 -77
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/types/src/muxing/balancer.d.ts.map +1 -1
- package/dist/types/src/muxing/framer.d.ts.map +1 -1
- package/dist/types/src/muxing/muxer.d.ts +4 -5
- package/dist/types/src/muxing/muxer.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/muxing/balancer.ts +3 -0
- package/src/muxing/framer.ts +7 -0
- package/src/muxing/muxer.test.ts +1 -1
- package/src/muxing/muxer.ts +81 -27
- package/src/teleport.ts +1 -1
- package/dist/lib/browser/chunk-J3RZ6SXA.mjs.map +0 -7
|
@@ -4,7 +4,7 @@ import "@dxos/node-std/globals";
|
|
|
4
4
|
import { pipeline } from "@dxos/node-std/stream";
|
|
5
5
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
6
6
|
import { PublicKey as PublicKey2 } from "@dxos/keys";
|
|
7
|
-
import { log as
|
|
7
|
+
import { log as log5 } from "@dxos/log";
|
|
8
8
|
|
|
9
9
|
// packages/core/mesh/teleport/src/teleport.ts
|
|
10
10
|
import { asyncTimeout, scheduleTaskInterval as scheduleTaskInterval2, runInContextAsync, synchronized, scheduleTask } from "@dxos/async";
|
|
@@ -12,8 +12,8 @@ import { Context as Context2 } from "@dxos/context";
|
|
|
12
12
|
import { failUndefined as failUndefined2 } from "@dxos/debug";
|
|
13
13
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
14
14
|
import { PublicKey } from "@dxos/keys";
|
|
15
|
-
import { log as
|
|
16
|
-
import { schema as schema2, RpcClosedError, TimeoutError } from "@dxos/protocols";
|
|
15
|
+
import { log as log4 } from "@dxos/log";
|
|
16
|
+
import { schema as schema2, RpcClosedError, TimeoutError as TimeoutError2 } from "@dxos/protocols";
|
|
17
17
|
import { createProtoRpcPeer } from "@dxos/rpc";
|
|
18
18
|
import { Callback } from "@dxos/util";
|
|
19
19
|
|
|
@@ -21,7 +21,8 @@ import { Callback } from "@dxos/util";
|
|
|
21
21
|
import { Duplex } from "@dxos/node-std/stream";
|
|
22
22
|
import { Event } from "@dxos/async";
|
|
23
23
|
import { invariant } from "@dxos/invariant";
|
|
24
|
-
|
|
24
|
+
import { log } from "@dxos/log";
|
|
25
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/framer.ts";
|
|
25
26
|
var FRAME_LENGTH_SIZE = 2;
|
|
26
27
|
var Framer = class {
|
|
27
28
|
constructor() {
|
|
@@ -43,7 +44,7 @@ var Framer = class {
|
|
|
43
44
|
write: (chunk, encoding, callback) => {
|
|
44
45
|
invariant(!this._subscribeCb, "Internal Framer bug. Concurrent writes detected.", {
|
|
45
46
|
F: __dxlog_file,
|
|
46
|
-
L:
|
|
47
|
+
L: 40,
|
|
47
48
|
S: this,
|
|
48
49
|
A: [
|
|
49
50
|
"!this._subscribeCb",
|
|
@@ -87,7 +88,7 @@ var Framer = class {
|
|
|
87
88
|
subscribe: (callback) => {
|
|
88
89
|
invariant(!this._messageCb, "Rpc port already has a message listener.", {
|
|
89
90
|
F: __dxlog_file,
|
|
90
|
-
L:
|
|
91
|
+
L: 79,
|
|
91
92
|
S: this,
|
|
92
93
|
A: [
|
|
93
94
|
"!this._messageCb",
|
|
@@ -141,6 +142,22 @@ var Framer = class {
|
|
|
141
142
|
}
|
|
142
143
|
}
|
|
143
144
|
destroy() {
|
|
145
|
+
if (this._stream.readableLength > 0) {
|
|
146
|
+
log.warn("framer destroyed while there are still read bytes in the buffer.", void 0, {
|
|
147
|
+
F: __dxlog_file,
|
|
148
|
+
L: 140,
|
|
149
|
+
S: this,
|
|
150
|
+
C: (f, a) => f(...a)
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (this._stream.writableLength > 0) {
|
|
154
|
+
log.warn("framer destroyed while there are still write bytes in the buffer.", void 0, {
|
|
155
|
+
F: __dxlog_file,
|
|
156
|
+
L: 143,
|
|
157
|
+
S: this,
|
|
158
|
+
C: (f, a) => f(...a)
|
|
159
|
+
});
|
|
160
|
+
}
|
|
144
161
|
this._stream.destroy();
|
|
145
162
|
}
|
|
146
163
|
};
|
|
@@ -172,14 +189,14 @@ import { scheduleTaskInterval, Event as Event3, Trigger } from "@dxos/async";
|
|
|
172
189
|
import { Context } from "@dxos/context";
|
|
173
190
|
import { failUndefined } from "@dxos/debug";
|
|
174
191
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
175
|
-
import { log as
|
|
176
|
-
import { schema } from "@dxos/protocols";
|
|
192
|
+
import { log as log3 } from "@dxos/log";
|
|
193
|
+
import { schema, TimeoutError } from "@dxos/protocols";
|
|
177
194
|
|
|
178
195
|
// packages/core/mesh/teleport/src/muxing/balancer.ts
|
|
179
196
|
import * as varint from "varint";
|
|
180
197
|
import { Event as Event2 } from "@dxos/async";
|
|
181
|
-
import { log } from "@dxos/log";
|
|
182
|
-
var __dxlog_file2 = "/
|
|
198
|
+
import { log as log2 } from "@dxos/log";
|
|
199
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/balancer.ts";
|
|
183
200
|
var MAX_CHUNK_SIZE = 8192;
|
|
184
201
|
var Balancer = class {
|
|
185
202
|
constructor(_sysChannelId) {
|
|
@@ -231,7 +248,7 @@ var Balancer = class {
|
|
|
231
248
|
});
|
|
232
249
|
});
|
|
233
250
|
if (noCalls) {
|
|
234
|
-
this._sendChunk().catch((err) =>
|
|
251
|
+
this._sendChunk().catch((err) => log2.catch(err, void 0, {
|
|
235
252
|
F: __dxlog_file2,
|
|
236
253
|
L: 100,
|
|
237
254
|
S: this,
|
|
@@ -240,6 +257,14 @@ var Balancer = class {
|
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
259
|
destroy() {
|
|
260
|
+
if (this._sendBuffers.size !== 0) {
|
|
261
|
+
log2.warn("destroying balancer with pending calls", void 0, {
|
|
262
|
+
F: __dxlog_file2,
|
|
263
|
+
L: 106,
|
|
264
|
+
S: this,
|
|
265
|
+
C: (f, a) => f(...a)
|
|
266
|
+
});
|
|
267
|
+
}
|
|
243
268
|
this._sendBuffers.clear();
|
|
244
269
|
this._framer.destroy();
|
|
245
270
|
}
|
|
@@ -336,11 +361,12 @@ var decodeChunk = (data, withLength) => {
|
|
|
336
361
|
};
|
|
337
362
|
|
|
338
363
|
// packages/core/mesh/teleport/src/muxing/muxer.ts
|
|
339
|
-
var __dxlog_file3 = "/
|
|
364
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/muxer.ts";
|
|
340
365
|
var Command = schema.getCodecForType("dxos.mesh.muxer.Command");
|
|
341
366
|
var STATS_INTERVAL = 1e3;
|
|
342
367
|
var MAX_SAFE_FRAME_SIZE = 1e6;
|
|
343
368
|
var SYSTEM_CHANNEL_ID = 0;
|
|
369
|
+
var GRACEFUL_CLOSE_TIMEOUT = 3e3;
|
|
344
370
|
var Muxer = class {
|
|
345
371
|
constructor() {
|
|
346
372
|
this._balancer = new Balancer(SYSTEM_CHANNEL_ID);
|
|
@@ -350,9 +376,10 @@ var Muxer = class {
|
|
|
350
376
|
this._nextId = 1;
|
|
351
377
|
this._destroyed = false;
|
|
352
378
|
this._destroying = false;
|
|
379
|
+
this._closing = false;
|
|
353
380
|
this._lastStats = void 0;
|
|
354
381
|
this._lastChannelStats = /* @__PURE__ */ new Map();
|
|
355
|
-
this.
|
|
382
|
+
this.afterClosed = new Event3();
|
|
356
383
|
this.statsUpdated = new Event3();
|
|
357
384
|
this.stream = this._balancer.stream;
|
|
358
385
|
this._balancer.incomingData.on(async (msg) => {
|
|
@@ -373,7 +400,7 @@ var Muxer = class {
|
|
|
373
400
|
});
|
|
374
401
|
invariant2(!channel.push, `Channel already open: ${tag}`, {
|
|
375
402
|
F: __dxlog_file3,
|
|
376
|
-
L:
|
|
403
|
+
L: 138,
|
|
377
404
|
S: this,
|
|
378
405
|
A: [
|
|
379
406
|
"!channel.push",
|
|
@@ -421,7 +448,7 @@ var Muxer = class {
|
|
|
421
448
|
});
|
|
422
449
|
invariant2(!channel.push, `Channel already open: ${tag}`, {
|
|
423
450
|
F: __dxlog_file3,
|
|
424
|
-
L:
|
|
451
|
+
L: 190,
|
|
425
452
|
S: this,
|
|
426
453
|
A: [
|
|
427
454
|
"!channel.push",
|
|
@@ -445,7 +472,7 @@ var Muxer = class {
|
|
|
445
472
|
subscribe: (cb) => {
|
|
446
473
|
invariant2(!callback, "Only one subscriber is allowed", {
|
|
447
474
|
F: __dxlog_file3,
|
|
448
|
-
L:
|
|
475
|
+
L: 212,
|
|
449
476
|
S: this,
|
|
450
477
|
A: [
|
|
451
478
|
"!callback",
|
|
@@ -473,61 +500,153 @@ var Muxer = class {
|
|
|
473
500
|
}
|
|
474
501
|
return port;
|
|
475
502
|
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
*/
|
|
479
|
-
async destroy(err) {
|
|
503
|
+
// initiate graceful close
|
|
504
|
+
async close(err) {
|
|
480
505
|
if (this._destroying) {
|
|
506
|
+
log3("already destroying, ignoring graceful close request", void 0, {
|
|
507
|
+
F: __dxlog_file3,
|
|
508
|
+
L: 245,
|
|
509
|
+
S: this,
|
|
510
|
+
C: (f, a) => f(...a)
|
|
511
|
+
});
|
|
481
512
|
return;
|
|
482
513
|
}
|
|
483
|
-
this.
|
|
484
|
-
|
|
485
|
-
|
|
514
|
+
if (this._closing) {
|
|
515
|
+
log3("already closing, ignoring graceful close request", void 0, {
|
|
516
|
+
F: __dxlog_file3,
|
|
517
|
+
L: 249,
|
|
518
|
+
S: this,
|
|
519
|
+
C: (f, a) => f(...a)
|
|
520
|
+
});
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
this._closing = true;
|
|
524
|
+
await this._sendCommand({
|
|
525
|
+
close: {
|
|
486
526
|
error: err?.message
|
|
487
527
|
}
|
|
488
|
-
}, SYSTEM_CHANNEL_ID).
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
528
|
+
}, SYSTEM_CHANNEL_ID).catch(async (err2) => {
|
|
529
|
+
log3("error sending close command", {
|
|
530
|
+
err: err2
|
|
531
|
+
}, {
|
|
532
|
+
F: __dxlog_file3,
|
|
533
|
+
L: 263,
|
|
534
|
+
S: this,
|
|
535
|
+
C: (f, a) => f(...a)
|
|
536
|
+
});
|
|
537
|
+
await this.dispose(err2);
|
|
492
538
|
});
|
|
539
|
+
await Promise.race([
|
|
540
|
+
new Promise((_resolve, reject) => {
|
|
541
|
+
setTimeout(() => {
|
|
542
|
+
reject(new TimeoutError("gracefully closing muxer"));
|
|
543
|
+
}, GRACEFUL_CLOSE_TIMEOUT);
|
|
544
|
+
}),
|
|
545
|
+
(async () => {
|
|
546
|
+
await this.dispose(err);
|
|
547
|
+
})()
|
|
548
|
+
]);
|
|
549
|
+
}
|
|
550
|
+
// force close without confirmation
|
|
551
|
+
async destroy(err) {
|
|
552
|
+
if (this._destroying) {
|
|
553
|
+
log3("already destroying, ignoring destroy request", void 0, {
|
|
554
|
+
F: __dxlog_file3,
|
|
555
|
+
L: 284,
|
|
556
|
+
S: this,
|
|
557
|
+
C: (f, a) => f(...a)
|
|
558
|
+
});
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
this._destroying = true;
|
|
493
562
|
void this._ctx.dispose();
|
|
563
|
+
if (this._closing) {
|
|
564
|
+
log3("destroy cancelling graceful close", void 0, {
|
|
565
|
+
F: __dxlog_file3,
|
|
566
|
+
L: 290,
|
|
567
|
+
S: this,
|
|
568
|
+
C: (f, a) => f(...a)
|
|
569
|
+
});
|
|
570
|
+
this._closing = false;
|
|
571
|
+
} else {
|
|
572
|
+
await this._sendCommand({
|
|
573
|
+
close: {
|
|
574
|
+
error: err?.message
|
|
575
|
+
}
|
|
576
|
+
}, SYSTEM_CHANNEL_ID).catch(async (err2) => {
|
|
577
|
+
log3("error sending courtesy close command", {
|
|
578
|
+
err: err2
|
|
579
|
+
}, {
|
|
580
|
+
F: __dxlog_file3,
|
|
581
|
+
L: 303,
|
|
582
|
+
S: this,
|
|
583
|
+
C: (f, a) => f(...a)
|
|
584
|
+
});
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
this.dispose(err).catch((err2) => {
|
|
588
|
+
log3("error disposing after destroy", {
|
|
589
|
+
err: err2
|
|
590
|
+
}, {
|
|
591
|
+
F: __dxlog_file3,
|
|
592
|
+
L: 308,
|
|
593
|
+
S: this,
|
|
594
|
+
C: (f, a) => f(...a)
|
|
595
|
+
});
|
|
596
|
+
});
|
|
494
597
|
}
|
|
495
|
-
|
|
598
|
+
// complete the termination, graceful or otherwise
|
|
599
|
+
async dispose(err) {
|
|
496
600
|
if (this._destroyed) {
|
|
601
|
+
log3("already destroyed, ignoring dispose request", void 0, {
|
|
602
|
+
F: __dxlog_file3,
|
|
603
|
+
L: 316,
|
|
604
|
+
S: this,
|
|
605
|
+
C: (f, a) => f(...a)
|
|
606
|
+
});
|
|
497
607
|
return;
|
|
498
608
|
}
|
|
499
|
-
this.
|
|
500
|
-
this._balancer.destroy();
|
|
609
|
+
void this._ctx.dispose();
|
|
610
|
+
await this._balancer.destroy();
|
|
501
611
|
for (const channel of this._channelsByTag.values()) {
|
|
502
612
|
channel.destroy?.(err);
|
|
503
613
|
}
|
|
504
|
-
this.
|
|
614
|
+
this._destroyed = true;
|
|
615
|
+
this.afterClosed.emit(err);
|
|
505
616
|
this._channelsByLocalId.clear();
|
|
506
617
|
this._channelsByTag.clear();
|
|
507
618
|
}
|
|
508
619
|
async _handleCommand(cmd) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
}, {
|
|
512
|
-
F: __dxlog_file3,
|
|
513
|
-
L: 286,
|
|
514
|
-
S: this,
|
|
515
|
-
C: (f, a) => f(...a)
|
|
516
|
-
});
|
|
517
|
-
if (this._destroyed || this._destroying) {
|
|
518
|
-
if (cmd.destroy) {
|
|
519
|
-
return;
|
|
520
|
-
}
|
|
521
|
-
log2.warn("Received command after destroy", {
|
|
620
|
+
if (this._destroyed) {
|
|
621
|
+
log3.warn("Received command after destroy", {
|
|
522
622
|
cmd
|
|
523
623
|
}, {
|
|
524
624
|
F: __dxlog_file3,
|
|
525
|
-
L:
|
|
625
|
+
L: 338,
|
|
526
626
|
S: this,
|
|
527
627
|
C: (f, a) => f(...a)
|
|
528
628
|
});
|
|
529
629
|
return;
|
|
530
630
|
}
|
|
631
|
+
if (cmd.close) {
|
|
632
|
+
if (!this._closing) {
|
|
633
|
+
log3("received peer close, initiating my own graceful close", void 0, {
|
|
634
|
+
F: __dxlog_file3,
|
|
635
|
+
L: 344,
|
|
636
|
+
S: this,
|
|
637
|
+
C: (f, a) => f(...a)
|
|
638
|
+
});
|
|
639
|
+
await this.close();
|
|
640
|
+
} else {
|
|
641
|
+
log3("received close from peer, already closing", void 0, {
|
|
642
|
+
F: __dxlog_file3,
|
|
643
|
+
L: 347,
|
|
644
|
+
S: this,
|
|
645
|
+
C: (f, a) => f(...a)
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
531
650
|
if (cmd.openChannel) {
|
|
532
651
|
const channel = this._getOrCreateStream({
|
|
533
652
|
tag: cmd.openChannel.tag,
|
|
@@ -546,19 +665,17 @@ var Muxer = class {
|
|
|
546
665
|
} else if (cmd.data) {
|
|
547
666
|
const stream = this._channelsByLocalId.get(cmd.data.channelId) ?? failUndefined();
|
|
548
667
|
if (!stream.push) {
|
|
549
|
-
|
|
668
|
+
log3.warn("Received data for channel before it was opened", {
|
|
550
669
|
tag: stream.tag
|
|
551
670
|
}, {
|
|
552
671
|
F: __dxlog_file3,
|
|
553
|
-
L:
|
|
672
|
+
L: 376,
|
|
554
673
|
S: this,
|
|
555
674
|
C: (f, a) => f(...a)
|
|
556
675
|
});
|
|
557
676
|
return;
|
|
558
677
|
}
|
|
559
678
|
stream.push(cmd.data.data);
|
|
560
|
-
} else if (cmd.destroy) {
|
|
561
|
-
this._dispose();
|
|
562
679
|
}
|
|
563
680
|
}
|
|
564
681
|
async _sendCommand(cmd, channelId = -1) {
|
|
@@ -594,12 +711,12 @@ var Muxer = class {
|
|
|
594
711
|
}
|
|
595
712
|
async _sendData(channel, data) {
|
|
596
713
|
if (data.length > MAX_SAFE_FRAME_SIZE) {
|
|
597
|
-
|
|
714
|
+
log3.warn("frame size exceeds maximum safe value", {
|
|
598
715
|
size: data.length,
|
|
599
716
|
threshold: MAX_SAFE_FRAME_SIZE
|
|
600
717
|
}, {
|
|
601
718
|
F: __dxlog_file3,
|
|
602
|
-
L:
|
|
719
|
+
L: 419,
|
|
603
720
|
S: this,
|
|
604
721
|
C: (f, a) => f(...a)
|
|
605
722
|
});
|
|
@@ -676,13 +793,13 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
676
793
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
677
794
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
678
795
|
}
|
|
679
|
-
var __dxlog_file4 = "/
|
|
796
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/teleport.ts";
|
|
680
797
|
var Teleport = class {
|
|
681
798
|
constructor({ initiator, localPeerId, remotePeerId }) {
|
|
682
799
|
this._ctx = new Context2({
|
|
683
800
|
onError: (err) => {
|
|
684
801
|
void this.destroy(err).catch(() => {
|
|
685
|
-
|
|
802
|
+
log4.error("Error during destroy", err, {
|
|
686
803
|
F: __dxlog_file4,
|
|
687
804
|
L: 44,
|
|
688
805
|
S: this,
|
|
@@ -699,13 +816,13 @@ var Teleport = class {
|
|
|
699
816
|
if (this._destroying || this._aborting) {
|
|
700
817
|
return;
|
|
701
818
|
}
|
|
702
|
-
|
|
819
|
+
log4("destroy teleport due to onTimeout in ControlExtension", void 0, {
|
|
703
820
|
F: __dxlog_file4,
|
|
704
821
|
L: 59,
|
|
705
822
|
S: this,
|
|
706
823
|
C: (f, a) => f(...a)
|
|
707
824
|
});
|
|
708
|
-
this.destroy(new
|
|
825
|
+
this.destroy(new TimeoutError2("control extension")).catch((err) => log4.catch(err, void 0, {
|
|
709
826
|
F: __dxlog_file4,
|
|
710
827
|
L: 60,
|
|
711
828
|
S: this,
|
|
@@ -749,7 +866,7 @@ var Teleport = class {
|
|
|
749
866
|
this.localPeerId = localPeerId;
|
|
750
867
|
this.remotePeerId = remotePeerId;
|
|
751
868
|
this._control.onExtensionRegistered.set(async (name) => {
|
|
752
|
-
|
|
869
|
+
log4("remote extension", {
|
|
753
870
|
name
|
|
754
871
|
}, {
|
|
755
872
|
F: __dxlog_file4,
|
|
@@ -778,7 +895,7 @@ var Teleport = class {
|
|
|
778
895
|
{
|
|
779
896
|
this._muxer.stream.on("close", async () => {
|
|
780
897
|
if (this._destroying || this._aborting) {
|
|
781
|
-
|
|
898
|
+
log4("destroy teleport due to muxer stream close, skipping due to already destroying/aborting", void 0, {
|
|
782
899
|
F: __dxlog_file4,
|
|
783
900
|
L: 97,
|
|
784
901
|
S: this,
|
|
@@ -793,7 +910,7 @@ var Teleport = class {
|
|
|
793
910
|
});
|
|
794
911
|
}
|
|
795
912
|
this._muxer.statsUpdated.on((stats) => {
|
|
796
|
-
|
|
913
|
+
log4.trace("dxos.mesh.teleport.stats", {
|
|
797
914
|
localPeerId,
|
|
798
915
|
remotePeerId,
|
|
799
916
|
bytesSent: stats.bytesSent,
|
|
@@ -839,7 +956,7 @@ var Teleport = class {
|
|
|
839
956
|
try {
|
|
840
957
|
await extension.onAbort(err);
|
|
841
958
|
} catch (err2) {
|
|
842
|
-
|
|
959
|
+
log4.catch(err2, void 0, {
|
|
843
960
|
F: __dxlog_file4,
|
|
844
961
|
L: 163,
|
|
845
962
|
S: this,
|
|
@@ -862,7 +979,7 @@ var Teleport = class {
|
|
|
862
979
|
try {
|
|
863
980
|
await extension.onClose(err);
|
|
864
981
|
} catch (err2) {
|
|
865
|
-
|
|
982
|
+
log4.catch(err2, void 0, {
|
|
866
983
|
F: __dxlog_file4,
|
|
867
984
|
L: 187,
|
|
868
985
|
S: this,
|
|
@@ -870,13 +987,13 @@ var Teleport = class {
|
|
|
870
987
|
});
|
|
871
988
|
}
|
|
872
989
|
}
|
|
873
|
-
await this._muxer.
|
|
990
|
+
await this._muxer.close();
|
|
874
991
|
}
|
|
875
992
|
addExtension(name, extension) {
|
|
876
993
|
if (!this._open) {
|
|
877
994
|
throw new Error("Not open");
|
|
878
995
|
}
|
|
879
|
-
|
|
996
|
+
log4("addExtension", {
|
|
880
997
|
name
|
|
881
998
|
}, {
|
|
882
999
|
F: __dxlog_file4,
|
|
@@ -923,7 +1040,7 @@ var Teleport = class {
|
|
|
923
1040
|
this._extensions.set(extensionName, extension);
|
|
924
1041
|
}
|
|
925
1042
|
async _openExtension(extensionName) {
|
|
926
|
-
|
|
1043
|
+
log4("open extension", {
|
|
927
1044
|
extensionName
|
|
928
1045
|
}, {
|
|
929
1046
|
F: __dxlog_file4,
|
|
@@ -967,7 +1084,7 @@ var Teleport = class {
|
|
|
967
1084
|
}
|
|
968
1085
|
};
|
|
969
1086
|
await extension.onOpen(context);
|
|
970
|
-
|
|
1087
|
+
log4("extension opened", {
|
|
971
1088
|
extensionName
|
|
972
1089
|
}, {
|
|
973
1090
|
F: __dxlog_file4,
|
|
@@ -1040,7 +1157,7 @@ var ControlExtension = class {
|
|
|
1040
1157
|
};
|
|
1041
1158
|
|
|
1042
1159
|
// packages/core/mesh/teleport/src/testing/test-builder.ts
|
|
1043
|
-
var __dxlog_file5 = "/
|
|
1160
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-builder.ts";
|
|
1044
1161
|
var TestBuilder = class {
|
|
1045
1162
|
constructor() {
|
|
1046
1163
|
this._peers = /* @__PURE__ */ new Set();
|
|
@@ -1208,7 +1325,7 @@ var TestPeer = class {
|
|
|
1208
1325
|
var pipeStreams = (stream1, stream2) => {
|
|
1209
1326
|
pipeline(stream1, stream2, (err) => {
|
|
1210
1327
|
if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {
|
|
1211
|
-
|
|
1328
|
+
log5.catch(err, void 0, {
|
|
1212
1329
|
F: __dxlog_file5,
|
|
1213
1330
|
L: 106,
|
|
1214
1331
|
S: void 0,
|
|
@@ -1218,7 +1335,7 @@ var pipeStreams = (stream1, stream2) => {
|
|
|
1218
1335
|
});
|
|
1219
1336
|
pipeline(stream2, stream1, (err) => {
|
|
1220
1337
|
if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {
|
|
1221
|
-
|
|
1338
|
+
log5.catch(err, void 0, {
|
|
1222
1339
|
F: __dxlog_file5,
|
|
1223
1340
|
L: 111,
|
|
1224
1341
|
S: void 0,
|
|
@@ -1243,10 +1360,10 @@ var TestConnection = class {
|
|
|
1243
1360
|
// packages/core/mesh/teleport/src/testing/test-extension.ts
|
|
1244
1361
|
import { asyncTimeout as asyncTimeout2, Trigger as Trigger2 } from "@dxos/async";
|
|
1245
1362
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1246
|
-
import { log as
|
|
1363
|
+
import { log as log6 } from "@dxos/log";
|
|
1247
1364
|
import { schema as schema3 } from "@dxos/protocols";
|
|
1248
1365
|
import { createProtoRpcPeer as createProtoRpcPeer2 } from "@dxos/rpc";
|
|
1249
|
-
var __dxlog_file6 = "/
|
|
1366
|
+
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension.ts";
|
|
1250
1367
|
var TestExtension = class {
|
|
1251
1368
|
constructor(callbacks = {}) {
|
|
1252
1369
|
this.callbacks = callbacks;
|
|
@@ -1258,7 +1375,7 @@ var TestExtension = class {
|
|
|
1258
1375
|
return this.extensionContext?.remotePeerId;
|
|
1259
1376
|
}
|
|
1260
1377
|
async onOpen(context) {
|
|
1261
|
-
|
|
1378
|
+
log6("onOpen", {
|
|
1262
1379
|
localPeerId: context.localPeerId,
|
|
1263
1380
|
remotePeerId: context.remotePeerId
|
|
1264
1381
|
}, {
|
|
@@ -1296,7 +1413,7 @@ var TestExtension = class {
|
|
|
1296
1413
|
this.open.wake();
|
|
1297
1414
|
}
|
|
1298
1415
|
async onClose(err) {
|
|
1299
|
-
|
|
1416
|
+
log6("onClose", {
|
|
1300
1417
|
err
|
|
1301
1418
|
}, {
|
|
1302
1419
|
F: __dxlog_file6,
|
|
@@ -1309,7 +1426,7 @@ var TestExtension = class {
|
|
|
1309
1426
|
await this._rpc?.close();
|
|
1310
1427
|
}
|
|
1311
1428
|
async onAbort(err) {
|
|
1312
|
-
|
|
1429
|
+
log6("onAbort", {
|
|
1313
1430
|
err
|
|
1314
1431
|
}, {
|
|
1315
1432
|
F: __dxlog_file6,
|
|
@@ -1350,10 +1467,10 @@ var TestExtension = class {
|
|
|
1350
1467
|
import { randomBytes } from "@dxos/node-std/crypto";
|
|
1351
1468
|
import { Trigger as Trigger3 } from "@dxos/async";
|
|
1352
1469
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1353
|
-
import { log as
|
|
1470
|
+
import { log as log7 } from "@dxos/log";
|
|
1354
1471
|
import { schema as schema4 } from "@dxos/protocols";
|
|
1355
1472
|
import { createProtoRpcPeer as createProtoRpcPeer3 } from "@dxos/rpc";
|
|
1356
|
-
var __dxlog_file7 = "/
|
|
1473
|
+
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
|
|
1357
1474
|
var TestExtensionWithStreams = class {
|
|
1358
1475
|
constructor(callbacks = {}) {
|
|
1359
1476
|
this.callbacks = callbacks;
|
|
@@ -1415,7 +1532,7 @@ var TestExtensionWithStreams = class {
|
|
|
1415
1532
|
});
|
|
1416
1533
|
streamEntry.reportingTimer = setInterval(() => {
|
|
1417
1534
|
const { bytesSent, bytesReceived, sendErrors, receiveErrors } = streamEntry;
|
|
1418
|
-
|
|
1535
|
+
log7.trace("dxos.test.stream-stats", {
|
|
1419
1536
|
streamTag,
|
|
1420
1537
|
bytesSent,
|
|
1421
1538
|
bytesReceived,
|
|
@@ -1456,7 +1573,7 @@ var TestExtensionWithStreams = class {
|
|
|
1456
1573
|
};
|
|
1457
1574
|
}
|
|
1458
1575
|
async onOpen(context) {
|
|
1459
|
-
|
|
1576
|
+
log7("onOpen", {
|
|
1460
1577
|
localPeerId: context.localPeerId,
|
|
1461
1578
|
remotePeerId: context.remotePeerId
|
|
1462
1579
|
}, {
|
|
@@ -1506,7 +1623,7 @@ var TestExtensionWithStreams = class {
|
|
|
1506
1623
|
this.open.wake();
|
|
1507
1624
|
}
|
|
1508
1625
|
async onClose(err) {
|
|
1509
|
-
|
|
1626
|
+
log7("onClose", {
|
|
1510
1627
|
err
|
|
1511
1628
|
}, {
|
|
1512
1629
|
F: __dxlog_file7,
|
|
@@ -1517,7 +1634,7 @@ var TestExtensionWithStreams = class {
|
|
|
1517
1634
|
await this.callbacks.onClose?.();
|
|
1518
1635
|
this.closed.wake();
|
|
1519
1636
|
for (const [streamTag, stream] of Object.entries(this._streams)) {
|
|
1520
|
-
|
|
1637
|
+
log7("closing stream", {
|
|
1521
1638
|
streamTag
|
|
1522
1639
|
}, {
|
|
1523
1640
|
F: __dxlog_file7,
|
|
@@ -1531,7 +1648,7 @@ var TestExtensionWithStreams = class {
|
|
|
1531
1648
|
await this._rpc?.close();
|
|
1532
1649
|
}
|
|
1533
1650
|
async onAbort(err) {
|
|
1534
|
-
|
|
1651
|
+
log7("onAbort", {
|
|
1535
1652
|
err
|
|
1536
1653
|
}, {
|
|
1537
1654
|
F: __dxlog_file7,
|
|
@@ -1618,4 +1735,4 @@ export {
|
|
|
1618
1735
|
TestExtension,
|
|
1619
1736
|
TestExtensionWithStreams
|
|
1620
1737
|
};
|
|
1621
|
-
//# sourceMappingURL=chunk-
|
|
1738
|
+
//# sourceMappingURL=chunk-PWWDYMDW.mjs.map
|