@dxos/network-manager 0.6.9-staging.8e43e2a → 0.6.10-main.3cfcc89

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.
@@ -622,7 +622,8 @@ import { Context as Context2 } from "@dxos/context";
622
622
  import { invariant as invariant2 } from "@dxos/invariant";
623
623
  import { PublicKey as PublicKey2 } from "@dxos/keys";
624
624
  import { log as log3 } from "@dxos/log";
625
- import { schema, TimeoutError as TimeoutError2 } from "@dxos/protocols";
625
+ import { TimeoutError as TimeoutError2 } from "@dxos/protocols";
626
+ import { schema } from "@dxos/protocols/proto";
626
627
  import { ComplexMap } from "@dxos/util";
627
628
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/signal/swarm-messenger.ts";
628
629
  var SwarmMessage = schema.getCodecForType("dxos.mesh.swarm.SwarmMessage");
@@ -630,7 +631,7 @@ var SwarmMessenger = class {
630
631
  constructor({ sendMessage, onSignal, onOffer, topic }) {
631
632
  this._ctx = new Context2(void 0, {
632
633
  F: __dxlog_file3,
633
- L: 34
634
+ L: 35
634
635
  });
635
636
  this._offerRecords = new ComplexMap((key) => key.toHex());
636
637
  this._sendMessage = sendMessage;
@@ -652,7 +653,7 @@ var SwarmMessenger = class {
652
653
  msg: message
653
654
  }, {
654
655
  F: __dxlog_file3,
655
- L: 70,
656
+ L: 71,
656
657
  S: this,
657
658
  C: (f, a) => f(...a)
658
659
  });
@@ -681,7 +682,7 @@ var SwarmMessenger = class {
681
682
  message
682
683
  }, {
683
684
  F: __dxlog_file3,
684
- L: 81,
685
+ L: 82,
685
686
  S: this,
686
687
  C: (f, a) => f(...a)
687
688
  });
@@ -690,7 +691,7 @@ var SwarmMessenger = class {
690
691
  async signal(message) {
691
692
  invariant2(message.data?.signal || message.data?.signalBatch, "Invalid message", {
692
693
  F: __dxlog_file3,
693
- L: 86,
694
+ L: 87,
694
695
  S: this,
695
696
  A: [
696
697
  "message.data?.signal || message.data?.signalBatch",
@@ -731,7 +732,7 @@ var SwarmMessenger = class {
731
732
  msg: networkMessage
732
733
  }, {
733
734
  F: __dxlog_file3,
734
- L: 124,
735
+ L: 125,
735
736
  S: this,
736
737
  C: (f, a) => f(...a)
737
738
  });
@@ -747,7 +748,7 @@ var SwarmMessenger = class {
747
748
  async _resolveAnswers(message) {
748
749
  invariant2(message.data?.answer?.offerMessageId, "No offerMessageId", {
749
750
  F: __dxlog_file3,
750
- L: 136,
751
+ L: 137,
751
752
  S: this,
752
753
  A: [
753
754
  "message.data?.answer?.offerMessageId",
@@ -759,7 +760,7 @@ var SwarmMessenger = class {
759
760
  this._offerRecords.delete(message.data.answer.offerMessageId);
760
761
  invariant2(message.data?.answer, "No answer", {
761
762
  F: __dxlog_file3,
762
- L: 140,
763
+ L: 141,
763
764
  S: this,
764
765
  A: [
765
766
  "message.data?.answer",
@@ -770,7 +771,7 @@ var SwarmMessenger = class {
770
771
  answer: message.data.answer
771
772
  }, {
772
773
  F: __dxlog_file3,
773
- L: 141,
774
+ L: 142,
774
775
  S: this,
775
776
  C: (f, a) => f(...a)
776
777
  });
@@ -780,7 +781,7 @@ var SwarmMessenger = class {
780
781
  async _handleOffer({ author, recipient, message }) {
781
782
  invariant2(message.data.offer, "No offer", {
782
783
  F: __dxlog_file3,
783
- L: 155,
784
+ L: 156,
784
785
  S: this,
785
786
  A: [
786
787
  "message.data.offer",
@@ -815,7 +816,7 @@ var SwarmMessenger = class {
815
816
  err
816
817
  }, {
817
818
  F: __dxlog_file3,
818
- L: 176,
819
+ L: 177,
819
820
  S: this,
820
821
  C: (f, a) => f(...a)
821
822
  });
@@ -824,7 +825,7 @@ var SwarmMessenger = class {
824
825
  err
825
826
  }, {
826
827
  F: __dxlog_file3,
827
- L: 178,
828
+ L: 179,
828
829
  S: this,
829
830
  C: (f, a) => f(...a)
830
831
  });
@@ -834,7 +835,7 @@ var SwarmMessenger = class {
834
835
  async _handleSignal({ author, recipient, message }) {
835
836
  invariant2(message.messageId, void 0, {
836
837
  F: __dxlog_file3,
837
- L: 192,
838
+ L: 193,
838
839
  S: this,
839
840
  A: [
840
841
  "message.messageId",
@@ -843,7 +844,7 @@ var SwarmMessenger = class {
843
844
  });
844
845
  invariant2(message.data.signal || message.data.signalBatch, "Invalid message", {
845
846
  F: __dxlog_file3,
846
- L: 193,
847
+ L: 194,
847
848
  S: this,
848
849
  A: [
849
850
  "message.data.signal || message.data.signalBatch",
@@ -2458,7 +2459,6 @@ var FullyConnectedTopology = class {
2458
2459
  };
2459
2460
 
2460
2461
  // packages/core/mesh/network-manager/src/topology/mmst-topology.ts
2461
- import distance from "xor-distance";
2462
2462
  import { invariant as invariant8 } from "@dxos/invariant";
2463
2463
  import { log as log9 } from "@dxos/log";
2464
2464
  var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/core/mesh/network-manager/src/topology/mmst-topology.ts";
@@ -2475,7 +2475,7 @@ var MMSTTopology = class {
2475
2475
  init(controller) {
2476
2476
  invariant8(!this._controller, "Already initialized", {
2477
2477
  F: __dxlog_file10,
2478
- L: 51,
2478
+ L: 49,
2479
2479
  S: this,
2480
2480
  A: [
2481
2481
  "!this._controller",
@@ -2487,7 +2487,7 @@ var MMSTTopology = class {
2487
2487
  update() {
2488
2488
  invariant8(this._controller, "Not initialized", {
2489
2489
  F: __dxlog_file10,
2490
- L: 56,
2490
+ L: 54,
2491
2491
  S: this,
2492
2492
  A: [
2493
2493
  "this._controller",
@@ -2498,7 +2498,7 @@ var MMSTTopology = class {
2498
2498
  if (this._sampleCollected || connected.length > this._maxPeers || candidates.length > 0) {
2499
2499
  log9("Running the algorithm.", void 0, {
2500
2500
  F: __dxlog_file10,
2501
- L: 60,
2501
+ L: 58,
2502
2502
  S: this,
2503
2503
  C: (f, a) => f(...a)
2504
2504
  });
@@ -2513,7 +2513,7 @@ var MMSTTopology = class {
2513
2513
  async onOffer(peer) {
2514
2514
  invariant8(this._controller, "Not initialized", {
2515
2515
  F: __dxlog_file10,
2516
- L: 72,
2516
+ L: 70,
2517
2517
  S: this,
2518
2518
  A: [
2519
2519
  "this._controller",
@@ -2524,7 +2524,7 @@ var MMSTTopology = class {
2524
2524
  const accept = connected.length < this._maxPeers;
2525
2525
  log9(`Offer ${peer} accept=${accept}`, void 0, {
2526
2526
  F: __dxlog_file10,
2527
- L: 75,
2527
+ L: 73,
2528
2528
  S: this,
2529
2529
  C: (f, a) => f(...a)
2530
2530
  });
@@ -2535,7 +2535,7 @@ var MMSTTopology = class {
2535
2535
  _runAlgorithm() {
2536
2536
  invariant8(this._controller, "Not initialized", {
2537
2537
  F: __dxlog_file10,
2538
- L: 84,
2538
+ L: 82,
2539
2539
  S: this,
2540
2540
  A: [
2541
2541
  "this._controller",
@@ -2546,14 +2546,14 @@ var MMSTTopology = class {
2546
2546
  if (connected.length > this._maxPeers) {
2547
2547
  log9(`disconnect ${connected.length - this._maxPeers} peers.`, void 0, {
2548
2548
  F: __dxlog_file10,
2549
- L: 90,
2549
+ L: 88,
2550
2550
  S: this,
2551
2551
  C: (f, a) => f(...a)
2552
2552
  });
2553
2553
  const sorted = sortByXorDistance(connected, ownPeerId).reverse().slice(0, this._maxPeers - connected.length);
2554
2554
  invariant8(sorted.length === 0, void 0, {
2555
2555
  F: __dxlog_file10,
2556
- L: 94,
2556
+ L: 92,
2557
2557
  S: this,
2558
2558
  A: [
2559
2559
  "sorted.length === 0",
@@ -2563,7 +2563,7 @@ var MMSTTopology = class {
2563
2563
  if (sorted.length > MAX_CHANGES_PER_UPDATE) {
2564
2564
  log9(`want to disconnect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, {
2565
2565
  F: __dxlog_file10,
2566
- L: 97,
2566
+ L: 95,
2567
2567
  S: this,
2568
2568
  C: (f, a) => f(...a)
2569
2569
  });
@@ -2572,7 +2572,7 @@ var MMSTTopology = class {
2572
2572
  for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
2573
2573
  log9(`Disconnect ${peer}.`, void 0, {
2574
2574
  F: __dxlog_file10,
2575
- L: 102,
2575
+ L: 100,
2576
2576
  S: this,
2577
2577
  C: (f, a) => f(...a)
2578
2578
  });
@@ -2582,7 +2582,7 @@ var MMSTTopology = class {
2582
2582
  } else {
2583
2583
  log9("rate limited disconnect", void 0, {
2584
2584
  F: __dxlog_file10,
2585
- L: 107,
2585
+ L: 105,
2586
2586
  S: this,
2587
2587
  C: (f, a) => f(...a)
2588
2588
  });
@@ -2590,7 +2590,7 @@ var MMSTTopology = class {
2590
2590
  } else if (connected.length < this._originateConnections) {
2591
2591
  log9(`connect ${this._originateConnections - connected.length} peers.`, void 0, {
2592
2592
  F: __dxlog_file10,
2593
- L: 111,
2593
+ L: 109,
2594
2594
  S: this,
2595
2595
  C: (f, a) => f(...a)
2596
2596
  });
@@ -2599,7 +2599,7 @@ var MMSTTopology = class {
2599
2599
  if (sorted.length > MAX_CHANGES_PER_UPDATE) {
2600
2600
  log9(`want to connect ${sorted.length} peers but limited to ${MAX_CHANGES_PER_UPDATE}`, void 0, {
2601
2601
  F: __dxlog_file10,
2602
- L: 116,
2602
+ L: 114,
2603
2603
  S: this,
2604
2604
  C: (f, a) => f(...a)
2605
2605
  });
@@ -2608,7 +2608,7 @@ var MMSTTopology = class {
2608
2608
  for (const peer of sorted.slice(0, MAX_CHANGES_PER_UPDATE)) {
2609
2609
  log9(`Connect ${peer}.`, void 0, {
2610
2610
  F: __dxlog_file10,
2611
- L: 120,
2611
+ L: 118,
2612
2612
  S: this,
2613
2613
  C: (f, a) => f(...a)
2614
2614
  });
@@ -2618,7 +2618,7 @@ var MMSTTopology = class {
2618
2618
  } else {
2619
2619
  log9("rate limited connect", void 0, {
2620
2620
  F: __dxlog_file10,
2621
- L: 125,
2621
+ L: 123,
2622
2622
  S: this,
2623
2623
  C: (f, a) => f(...a)
2624
2624
  });
@@ -2629,7 +2629,40 @@ var MMSTTopology = class {
2629
2629
  return "MMSTTopology";
2630
2630
  }
2631
2631
  };
2632
- var sortByXorDistance = (keys, reference) => keys.sort((a, b) => distance.gt(distance(a.asBuffer(), reference.asBuffer()), distance(b.asBuffer(), reference.asBuffer())));
2632
+ var sortByXorDistance = (keys, reference) => {
2633
+ const sorted = keys.sort((a, b) => {
2634
+ return compareXor(distXor(a.asBuffer(), reference.asBuffer()), distXor(b.asBuffer(), reference.asBuffer()));
2635
+ });
2636
+ log9("Sorted keys", {
2637
+ keys,
2638
+ reference,
2639
+ sorted
2640
+ }, {
2641
+ F: __dxlog_file10,
2642
+ L: 137,
2643
+ S: void 0,
2644
+ C: (f, a) => f(...a)
2645
+ });
2646
+ return sorted;
2647
+ };
2648
+ var distXor = (a, b) => {
2649
+ const maxLength = Math.max(a.length, b.length);
2650
+ const result = Buffer2.allocUnsafe(maxLength);
2651
+ for (let i = 0; i < maxLength; i++) {
2652
+ result[i] = (a[i] || 0) ^ (b[i] || 0);
2653
+ }
2654
+ return result;
2655
+ };
2656
+ var compareXor = (a, b) => {
2657
+ const maxLength = Math.max(a.length, b.length);
2658
+ for (let i = 0; i < maxLength; i++) {
2659
+ if ((a[i] || 0) === (b[i] || 0)) {
2660
+ continue;
2661
+ }
2662
+ return (a[i] || 0) < (b[i] || 0) ? -1 : 1;
2663
+ }
2664
+ return 0;
2665
+ };
2633
2666
 
2634
2667
  // packages/core/mesh/network-manager/src/topology/star-topology.ts
2635
2668
  import { invariant as invariant9 } from "@dxos/invariant";
@@ -4184,4 +4217,4 @@ export {
4184
4217
  TcpTransport,
4185
4218
  createTeleportProtocolFactory
4186
4219
  };
4187
- //# sourceMappingURL=chunk-ZQ4OU7JZ.mjs.map
4220
+ //# sourceMappingURL=chunk-SKTAEJ7M.mjs.map