@dxos/network-manager 0.6.10-main.e92b5eb → 0.6.10-staging.00555f6
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-ZQ4OU7JZ.mjs → chunk-SKTAEJ7M.mjs} +65 -32
- package/dist/lib/browser/chunk-SKTAEJ7M.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +2 -2
- package/dist/lib/browser/testing/index.mjs.map +1 -1
- package/dist/lib/node/{chunk-IQBYIEAR.cjs → chunk-FYVBSNF4.cjs} +68 -35
- package/dist/lib/node/chunk-FYVBSNF4.cjs.map +7 -0
- package/dist/lib/node/index.cjs +28 -28
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +21 -21
- package/dist/lib/node/testing/index.cjs.map +2 -2
- package/dist/types/src/signal/swarm-messenger.d.ts.map +1 -1
- package/dist/types/src/topology/mmst-topology.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/signal/swarm-messenger.ts +2 -1
- package/src/testing/test-builder.ts +1 -1
- package/src/topology/mmst-topology.ts +27 -6
- package/src/transport/simplepeer-transport-proxy-test.ts +1 -1
- package/dist/lib/browser/chunk-ZQ4OU7JZ.mjs.map +0 -7
- package/dist/lib/node/chunk-IQBYIEAR.cjs.map +0 -7
|
@@ -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 {
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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) =>
|
|
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-
|
|
4220
|
+
//# sourceMappingURL=chunk-SKTAEJ7M.mjs.map
|