@dxos/teleport 0.1.56-next.a63ce79 → 0.1.56
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-57AKT4R2.mjs → chunk-FWNSZYWK.mjs} +61 -34
- package/dist/lib/browser/chunk-FWNSZYWK.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 +61 -34
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +60 -33
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/types/src/muxing/framer.d.ts.map +1 -1
- package/dist/types/src/muxing/muxer.d.ts +5 -0
- package/dist/types/src/muxing/muxer.d.ts.map +1 -1
- package/dist/types/src/teleport.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/muxing/framer.ts +3 -3
- package/src/muxing/muxer.ts +79 -51
- package/src/teleport.ts +5 -0
- package/dist/lib/browser/chunk-57AKT4R2.mjs.map +0 -7
package/dist/lib/node/index.cjs
CHANGED
|
@@ -47,10 +47,14 @@ module.exports = __toCommonJS(src_exports);
|
|
|
47
47
|
// packages/core/mesh/teleport/src/muxing/framer.ts
|
|
48
48
|
var import_node_stream = require("node:stream");
|
|
49
49
|
var import_invariant = require("@dxos/invariant");
|
|
50
|
-
var __dxlog_file = "/
|
|
50
|
+
var __dxlog_file = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/muxing/framer.ts";
|
|
51
51
|
var FRAME_LENGTH_SIZE = 2;
|
|
52
52
|
var Framer = class {
|
|
53
53
|
constructor() {
|
|
54
|
+
// private readonly _tagBuffer = Buffer.alloc(4)
|
|
55
|
+
this._messageCb = void 0;
|
|
56
|
+
this._subscribeCb = void 0;
|
|
57
|
+
this._buffer = void 0;
|
|
54
58
|
this._sendCallbacks = [];
|
|
55
59
|
this._bytesSent = 0;
|
|
56
60
|
this._bytesReceived = 0;
|
|
@@ -193,7 +197,7 @@ var import_protocols = require("@dxos/protocols");
|
|
|
193
197
|
var varint = __toESM(require("varint"));
|
|
194
198
|
var import_async = require("@dxos/async");
|
|
195
199
|
var import_log = require("@dxos/log");
|
|
196
|
-
var __dxlog_file2 = "/
|
|
200
|
+
var __dxlog_file2 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/muxing/balancer.ts";
|
|
197
201
|
var MAX_CHUNK_SIZE = 8192;
|
|
198
202
|
var Balancer = class {
|
|
199
203
|
constructor(_sysChannelId) {
|
|
@@ -344,7 +348,7 @@ var decodeChunk = (data, withLength) => {
|
|
|
344
348
|
};
|
|
345
349
|
|
|
346
350
|
// packages/core/mesh/teleport/src/muxing/muxer.ts
|
|
347
|
-
var __dxlog_file3 = "/
|
|
351
|
+
var __dxlog_file3 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/muxing/muxer.ts";
|
|
348
352
|
var Command = import_protocols.schema.getCodecForType("dxos.mesh.muxer.Command");
|
|
349
353
|
var STATS_INTERVAL = 1e3;
|
|
350
354
|
var MAX_SAFE_FRAME_SIZE = 1e6;
|
|
@@ -358,6 +362,8 @@ var Muxer = class {
|
|
|
358
362
|
this._nextId = 1;
|
|
359
363
|
this._destroyed = false;
|
|
360
364
|
this._destroying = false;
|
|
365
|
+
this._lastStats = void 0;
|
|
366
|
+
this._lastChannelStats = /* @__PURE__ */ new Map();
|
|
361
367
|
this.close = new import_async2.Event();
|
|
362
368
|
this.statsUpdated = new import_async2.Event();
|
|
363
369
|
this.stream = this._balancer.stream;
|
|
@@ -379,7 +385,7 @@ var Muxer = class {
|
|
|
379
385
|
});
|
|
380
386
|
(0, import_invariant2.invariant)(!channel.push, `Channel already open: ${tag}`, {
|
|
381
387
|
F: __dxlog_file3,
|
|
382
|
-
L:
|
|
388
|
+
L: 134,
|
|
383
389
|
S: this,
|
|
384
390
|
A: [
|
|
385
391
|
"!channel.push",
|
|
@@ -427,7 +433,7 @@ var Muxer = class {
|
|
|
427
433
|
});
|
|
428
434
|
(0, import_invariant2.invariant)(!channel.push, `Channel already open: ${tag}`, {
|
|
429
435
|
F: __dxlog_file3,
|
|
430
|
-
L:
|
|
436
|
+
L: 186,
|
|
431
437
|
S: this,
|
|
432
438
|
A: [
|
|
433
439
|
"!channel.push",
|
|
@@ -451,7 +457,7 @@ var Muxer = class {
|
|
|
451
457
|
subscribe: (cb) => {
|
|
452
458
|
(0, import_invariant2.invariant)(!callback, "Only one subscriber is allowed", {
|
|
453
459
|
F: __dxlog_file3,
|
|
454
|
-
L:
|
|
460
|
+
L: 208,
|
|
455
461
|
S: this,
|
|
456
462
|
A: [
|
|
457
463
|
"!callback",
|
|
@@ -516,7 +522,7 @@ var Muxer = class {
|
|
|
516
522
|
cmd
|
|
517
523
|
}, {
|
|
518
524
|
F: __dxlog_file3,
|
|
519
|
-
L:
|
|
525
|
+
L: 283,
|
|
520
526
|
S: this,
|
|
521
527
|
C: (f, a) => f(...a)
|
|
522
528
|
});
|
|
@@ -528,7 +534,7 @@ var Muxer = class {
|
|
|
528
534
|
cmd
|
|
529
535
|
}, {
|
|
530
536
|
F: __dxlog_file3,
|
|
531
|
-
L:
|
|
537
|
+
L: 290,
|
|
532
538
|
S: this,
|
|
533
539
|
C: (f, a) => f(...a)
|
|
534
540
|
});
|
|
@@ -556,7 +562,7 @@ var Muxer = class {
|
|
|
556
562
|
tag: stream.tag
|
|
557
563
|
}, {
|
|
558
564
|
F: __dxlog_file3,
|
|
559
|
-
L:
|
|
565
|
+
L: 317,
|
|
560
566
|
S: this,
|
|
561
567
|
C: (f, a) => f(...a)
|
|
562
568
|
});
|
|
@@ -605,7 +611,7 @@ var Muxer = class {
|
|
|
605
611
|
threshold: MAX_SAFE_FRAME_SIZE
|
|
606
612
|
}, {
|
|
607
613
|
F: __dxlog_file3,
|
|
608
|
-
L:
|
|
614
|
+
L: 362,
|
|
609
615
|
S: this,
|
|
610
616
|
C: (f, a) => f(...a)
|
|
611
617
|
});
|
|
@@ -631,21 +637,40 @@ var Muxer = class {
|
|
|
631
637
|
}
|
|
632
638
|
async _emitStats() {
|
|
633
639
|
if (this._destroyed || this._destroying) {
|
|
640
|
+
this._lastStats = void 0;
|
|
641
|
+
this._lastChannelStats.clear();
|
|
634
642
|
return;
|
|
635
643
|
}
|
|
636
644
|
const bytesSent = this._balancer.bytesSent;
|
|
637
645
|
const bytesReceived = this._balancer.bytesReceived;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
+
const now = Date.now();
|
|
647
|
+
const interval = this._lastStats ? (now - this._lastStats.timestamp) / 1e3 : 0;
|
|
648
|
+
const calculateThroughput = (current, last) => last ? {
|
|
649
|
+
bytesSentRate: interval ? (current.bytesSent - last.bytesSent) / interval : void 0,
|
|
650
|
+
bytesReceivedRate: interval ? (current.bytesReceived - last.bytesReceived) / interval : void 0
|
|
651
|
+
} : {};
|
|
652
|
+
this._lastStats = {
|
|
653
|
+
timestamp: now,
|
|
654
|
+
channels: Array.from(this._channelsByTag.values()).map((channel) => {
|
|
655
|
+
const stats = {
|
|
656
|
+
id: channel.id,
|
|
657
|
+
tag: channel.tag,
|
|
658
|
+
contentType: channel.contentType,
|
|
659
|
+
bytesSent: channel.stats.bytesSent,
|
|
660
|
+
bytesReceived: channel.stats.bytesReceived,
|
|
661
|
+
...calculateThroughput(channel.stats, this._lastChannelStats.get(channel.id))
|
|
662
|
+
};
|
|
663
|
+
this._lastChannelStats.set(channel.id, stats);
|
|
664
|
+
return stats;
|
|
665
|
+
}),
|
|
646
666
|
bytesSent,
|
|
647
|
-
bytesReceived
|
|
648
|
-
|
|
667
|
+
bytesReceived,
|
|
668
|
+
...calculateThroughput({
|
|
669
|
+
bytesSent,
|
|
670
|
+
bytesReceived
|
|
671
|
+
}, this._lastStats)
|
|
672
|
+
};
|
|
673
|
+
this.statsUpdated.emit(this._lastStats);
|
|
649
674
|
}
|
|
650
675
|
};
|
|
651
676
|
|
|
@@ -669,7 +694,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
669
694
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
670
695
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
671
696
|
}
|
|
672
|
-
var __dxlog_file4 = "/
|
|
697
|
+
var __dxlog_file4 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/teleport.ts";
|
|
673
698
|
var Teleport = class {
|
|
674
699
|
constructor({ initiator, localPeerId, remotePeerId }) {
|
|
675
700
|
this._ctx = new import_context2.Context({
|
|
@@ -770,11 +795,13 @@ var Teleport = class {
|
|
|
770
795
|
localPeerId,
|
|
771
796
|
remotePeerId,
|
|
772
797
|
bytesSent: stats.bytesSent,
|
|
798
|
+
bytesSentRate: stats.bytesSentRate,
|
|
773
799
|
bytesReceived: stats.bytesReceived,
|
|
800
|
+
bytesReceivedRate: stats.bytesReceivedRate,
|
|
774
801
|
channels: stats.channels
|
|
775
802
|
}, {
|
|
776
803
|
F: __dxlog_file4,
|
|
777
|
-
L:
|
|
804
|
+
L: 89,
|
|
778
805
|
S: this,
|
|
779
806
|
C: (f, a) => f(...a)
|
|
780
807
|
});
|
|
@@ -808,7 +835,7 @@ var Teleport = class {
|
|
|
808
835
|
} catch (err2) {
|
|
809
836
|
import_log3.log.catch(err2, void 0, {
|
|
810
837
|
F: __dxlog_file4,
|
|
811
|
-
L:
|
|
838
|
+
L: 137,
|
|
812
839
|
S: this,
|
|
813
840
|
C: (f, a) => f(...a)
|
|
814
841
|
});
|
|
@@ -824,7 +851,7 @@ var Teleport = class {
|
|
|
824
851
|
name
|
|
825
852
|
}, {
|
|
826
853
|
F: __dxlog_file4,
|
|
827
|
-
L:
|
|
854
|
+
L: 149,
|
|
828
855
|
S: this,
|
|
829
856
|
C: (f, a) => f(...a)
|
|
830
857
|
});
|
|
@@ -848,7 +875,7 @@ var Teleport = class {
|
|
|
848
875
|
_setExtension(extensionName, extension) {
|
|
849
876
|
(0, import_invariant3.invariant)(!extensionName.includes("/"), "Invalid extension name", {
|
|
850
877
|
F: __dxlog_file4,
|
|
851
|
-
L:
|
|
878
|
+
L: 173,
|
|
852
879
|
S: this,
|
|
853
880
|
A: [
|
|
854
881
|
"!extensionName.includes('/')",
|
|
@@ -857,7 +884,7 @@ var Teleport = class {
|
|
|
857
884
|
});
|
|
858
885
|
(0, import_invariant3.invariant)(!this._extensions.has(extensionName), "Extension already exists", {
|
|
859
886
|
F: __dxlog_file4,
|
|
860
|
-
L:
|
|
887
|
+
L: 174,
|
|
861
888
|
S: this,
|
|
862
889
|
A: [
|
|
863
890
|
"!this._extensions.has(extensionName)",
|
|
@@ -871,7 +898,7 @@ var Teleport = class {
|
|
|
871
898
|
extensionName
|
|
872
899
|
}, {
|
|
873
900
|
F: __dxlog_file4,
|
|
874
|
-
L:
|
|
901
|
+
L: 179,
|
|
875
902
|
S: this,
|
|
876
903
|
C: (f, a) => f(...a)
|
|
877
904
|
});
|
|
@@ -883,7 +910,7 @@ var Teleport = class {
|
|
|
883
910
|
createPort: async (channelName, opts) => {
|
|
884
911
|
(0, import_invariant3.invariant)(!channelName.includes("/"), "Invalid channel name", {
|
|
885
912
|
F: __dxlog_file4,
|
|
886
|
-
L:
|
|
913
|
+
L: 187,
|
|
887
914
|
S: this,
|
|
888
915
|
A: [
|
|
889
916
|
"!channelName.includes('/')",
|
|
@@ -895,7 +922,7 @@ var Teleport = class {
|
|
|
895
922
|
createStream: async (channelName, opts) => {
|
|
896
923
|
(0, import_invariant3.invariant)(!channelName.includes("/"), "Invalid channel name", {
|
|
897
924
|
F: __dxlog_file4,
|
|
898
|
-
L:
|
|
925
|
+
L: 191,
|
|
899
926
|
S: this,
|
|
900
927
|
A: [
|
|
901
928
|
"!channelName.includes('/')",
|
|
@@ -915,7 +942,7 @@ var Teleport = class {
|
|
|
915
942
|
extensionName
|
|
916
943
|
}, {
|
|
917
944
|
F: __dxlog_file4,
|
|
918
|
-
L:
|
|
945
|
+
L: 202,
|
|
919
946
|
S: this,
|
|
920
947
|
C: (f, a) => f(...a)
|
|
921
948
|
});
|
|
@@ -981,7 +1008,7 @@ var import_node_stream3 = require("node:stream");
|
|
|
981
1008
|
var import_invariant4 = require("@dxos/invariant");
|
|
982
1009
|
var import_keys2 = require("@dxos/keys");
|
|
983
1010
|
var import_log4 = require("@dxos/log");
|
|
984
|
-
var __dxlog_file5 = "/
|
|
1011
|
+
var __dxlog_file5 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/testing/test-builder.ts";
|
|
985
1012
|
var TestBuilder = class {
|
|
986
1013
|
constructor() {
|
|
987
1014
|
this._peers = /* @__PURE__ */ new Set();
|
|
@@ -1187,7 +1214,7 @@ var import_invariant5 = require("@dxos/invariant");
|
|
|
1187
1214
|
var import_log5 = require("@dxos/log");
|
|
1188
1215
|
var import_protocols3 = require("@dxos/protocols");
|
|
1189
1216
|
var import_rpc2 = require("@dxos/rpc");
|
|
1190
|
-
var __dxlog_file6 = "/
|
|
1217
|
+
var __dxlog_file6 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/testing/test-extension.ts";
|
|
1191
1218
|
var TestExtension = class {
|
|
1192
1219
|
constructor(callbacks = {}) {
|
|
1193
1220
|
this.callbacks = callbacks;
|
|
@@ -1280,7 +1307,7 @@ var import_invariant6 = require("@dxos/invariant");
|
|
|
1280
1307
|
var import_log6 = require("@dxos/log");
|
|
1281
1308
|
var import_protocols4 = require("@dxos/protocols");
|
|
1282
1309
|
var import_rpc3 = require("@dxos/rpc");
|
|
1283
|
-
var __dxlog_file7 = "/
|
|
1310
|
+
var __dxlog_file7 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
|
|
1284
1311
|
var TestExtensionWithStreams = class {
|
|
1285
1312
|
constructor(callbacks = {}) {
|
|
1286
1313
|
this.callbacks = callbacks;
|
|
@@ -1522,7 +1549,7 @@ var TestExtensionWithStreams = class {
|
|
|
1522
1549
|
// packages/core/mesh/teleport/src/rpc-extension.ts
|
|
1523
1550
|
var import_invariant7 = require("@dxos/invariant");
|
|
1524
1551
|
var import_rpc4 = require("@dxos/rpc");
|
|
1525
|
-
var __dxlog_file8 = "/
|
|
1552
|
+
var __dxlog_file8 = "/mnt/ramdisk/work/packages/core/mesh/teleport/src/rpc-extension.ts";
|
|
1526
1553
|
var RpcExtension = class {
|
|
1527
1554
|
constructor(_rpcParams) {
|
|
1528
1555
|
this._rpcParams = _rpcParams;
|