@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.
@@ -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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/framer.ts";
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/balancer.ts";
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/muxing/muxer.ts";
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: 91,
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: 143,
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: 165,
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: 240,
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: 247,
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: 274,
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: 318,
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
- this.statsUpdated.emit({
639
- channels: Array.from(this._channelsByTag.values()).map((channel) => ({
640
- id: channel.id,
641
- tag: channel.tag,
642
- contentType: channel.contentType,
643
- bytesSent: channel.stats.bytesSent,
644
- bytesReceived: channel.stats.bytesReceived
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/teleport.ts";
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: 88,
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: 132,
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: 144,
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: 168,
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: 169,
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: 174,
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: 182,
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: 186,
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: 197,
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-builder.ts";
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension.ts";
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/testing/test-extension-with-streams.ts";
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 = "/home/runner/work/dxos/dxos/packages/core/mesh/teleport/src/rpc-extension.ts";
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;