@dxos/echo-pipeline 0.8.4-main.f9ba587 → 0.8.4-main.fffef41
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-GBFX5J5B.mjs → chunk-FR6GJ4S4.mjs} +239 -162
- package/dist/lib/browser/chunk-FR6GJ4S4.mjs.map +7 -0
- package/dist/lib/browser/chunk-WJJXJTNS.mjs +240 -0
- package/dist/lib/browser/chunk-WJJXJTNS.mjs.map +7 -0
- package/dist/lib/browser/filter/index.mjs +3 -1
- package/dist/lib/browser/index.mjs +1102 -347
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +36 -14
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/{chunk-FQFKWA3X.mjs → chunk-JQCCVDLT.mjs} +239 -162
- package/dist/lib/node-esm/chunk-JQCCVDLT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-LEQ77KAT.mjs +240 -0
- package/dist/lib/node-esm/chunk-LEQ77KAT.mjs.map +7 -0
- package/dist/lib/node-esm/filter/index.mjs +3 -1
- package/dist/lib/node-esm/index.mjs +1102 -347
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +36 -14
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/automerge/automerge-host.d.ts +15 -28
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/automerge/collection-synchronizer.d.ts +3 -2
- package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-network-adapter.d.ts +8 -1
- package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-replicator.d.ts +21 -2
- package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
- package/dist/types/src/automerge/index.d.ts +1 -1
- package/dist/types/src/automerge/index.d.ts.map +1 -1
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +1 -1
- package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +1 -0
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
- package/dist/types/src/common/codec.d.ts +1 -1
- package/dist/types/src/common/codec.d.ts.map +1 -1
- package/dist/types/src/db-host/data-service.d.ts +2 -2
- package/dist/types/src/db-host/data-service.d.ts.map +1 -1
- package/dist/types/src/db-host/database-root.d.ts.map +1 -1
- package/dist/types/src/db-host/documents-synchronizer.d.ts +2 -2
- package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
- package/dist/types/src/db-host/echo-host.d.ts +2 -2
- package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
- package/dist/types/src/db-host/query-service.d.ts +1 -1
- package/dist/types/src/db-host/query-service.d.ts.map +1 -1
- package/dist/types/src/db-host/space-state-manager.d.ts +1 -1
- package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -1
- package/dist/types/src/edge/echo-edge-replicator.d.ts +4 -2
- package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
- package/dist/types/src/filter/filter-match.d.ts +4 -1
- package/dist/types/src/filter/filter-match.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/pipeline/pipeline.d.ts +1 -1
- package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
- package/dist/types/src/query/errors.d.ts +23 -9
- package/dist/types/src/query/errors.d.ts.map +1 -1
- package/dist/types/src/query/plan.d.ts +8 -1
- package/dist/types/src/query/plan.d.ts.map +1 -1
- package/dist/types/src/query/query-executor.d.ts +13 -1
- package/dist/types/src/query/query-executor.d.ts.map +1 -1
- package/dist/types/src/query/query-planner.d.ts +2 -0
- package/dist/types/src/query/query-planner.d.ts.map +1 -1
- package/dist/types/src/space/admission-discovery-extension.d.ts.map +1 -1
- package/dist/types/src/space/control-pipeline.d.ts +1 -1
- package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
- package/dist/types/src/space/space-manager.d.ts +1 -1
- package/dist/types/src/space/space-manager.d.ts.map +1 -1
- package/dist/types/src/space/space-protocol.d.ts +1 -1
- package/dist/types/src/space/space-protocol.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts +1 -1
- package/dist/types/src/space/space.d.ts.map +1 -1
- package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
- package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts.map +1 -1
- package/dist/types/src/testing/test-replicator.d.ts +1 -0
- package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
- package/dist/types/src/testing/test-schema.d.ts +1 -1
- package/dist/types/src/testing/test-schema.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +40 -38
- package/src/automerge/automerge-host.test.ts +18 -8
- package/src/automerge/automerge-host.ts +273 -74
- package/src/automerge/automerge-repo.test.ts +67 -16
- package/src/automerge/collection-synchronizer.test.ts +6 -5
- package/src/automerge/collection-synchronizer.ts +16 -11
- package/src/automerge/echo-data-monitor.ts +1 -1
- package/src/automerge/echo-network-adapter.test.ts +3 -3
- package/src/automerge/echo-network-adapter.ts +38 -6
- package/src/automerge/echo-replicator.ts +23 -2
- package/src/automerge/index.ts +1 -1
- package/src/automerge/leveldb-storage-adapter.ts +7 -7
- package/src/automerge/mesh-echo-replicator-connection.ts +4 -0
- package/src/automerge/mesh-echo-replicator.ts +2 -1
- package/src/automerge/storage-adapter.test.ts +1 -1
- package/src/common/space-id.ts +1 -1
- package/src/db-host/data-service.ts +9 -17
- package/src/db-host/database-root.ts +2 -2
- package/src/db-host/documents-synchronizer.test.ts +1 -1
- package/src/db-host/documents-synchronizer.ts +39 -26
- package/src/db-host/echo-host.ts +14 -15
- package/src/db-host/query-service.ts +10 -2
- package/src/db-host/space-state-manager.ts +2 -2
- package/src/edge/echo-edge-replicator.test.ts +5 -3
- package/src/edge/echo-edge-replicator.ts +105 -27
- package/src/filter/filter-match.test.ts +33 -13
- package/src/filter/filter-match.ts +164 -10
- package/src/metadata/metadata-store.ts +3 -3
- package/src/pipeline/pipeline-stress.test.ts +4 -2
- package/src/pipeline/pipeline.test.ts +3 -2
- package/src/pipeline/pipeline.ts +8 -5
- package/src/query/errors.ts +2 -0
- package/src/query/plan.ts +12 -1
- package/src/query/query-executor.ts +154 -14
- package/src/query/query-planner.test.ts +236 -7
- package/src/query/query-planner.ts +87 -12
- package/src/space/admission-discovery-extension.ts +2 -2
- package/src/space/control-pipeline.test.ts +4 -3
- package/src/space/control-pipeline.ts +9 -6
- package/src/space/space-manager.browser.test.ts +1 -1
- package/src/space/space-manager.ts +5 -4
- package/src/space/space-protocol.browser.test.ts +2 -2
- package/src/space/space-protocol.test.ts +3 -2
- package/src/space/space-protocol.ts +6 -3
- package/src/space/space.test.ts +1 -1
- package/src/space/space.ts +3 -2
- package/src/testing/test-agent-builder.ts +4 -3
- package/src/testing/test-data.ts +1 -1
- package/src/testing/test-replicator.ts +4 -0
- package/src/testing/test-schema.ts +1 -1
- package/src/util.ts +1 -1
- package/dist/lib/browser/chunk-ANZAS5CC.mjs +0 -126
- package/dist/lib/browser/chunk-ANZAS5CC.mjs.map +0 -7
- package/dist/lib/browser/chunk-GBFX5J5B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2SAZ7CCF.mjs +0 -126
- package/dist/lib/node-esm/chunk-2SAZ7CCF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FQFKWA3X.mjs.map +0 -7
|
@@ -79,15 +79,19 @@ var emptyLargeSpaceMetadata = () => ({});
|
|
|
79
79
|
var EchoMetadata = schema2.getCodecForType("dxos.echo.metadata.EchoMetadata");
|
|
80
80
|
var LargeSpaceMetadata = schema2.getCodecForType("dxos.echo.metadata.LargeSpaceMetadata");
|
|
81
81
|
var MetadataStore = class {
|
|
82
|
+
_metadata = emptyEchoMetadata();
|
|
83
|
+
_spaceLargeMetadata = new ComplexMap2(PublicKey2.hash);
|
|
84
|
+
_metadataFile = void 0;
|
|
85
|
+
update = new Event();
|
|
86
|
+
_invitationCleanupCtx = new Context(void 0, {
|
|
87
|
+
F: __dxlog_file2,
|
|
88
|
+
L: 55
|
|
89
|
+
});
|
|
90
|
+
/**
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
_directory;
|
|
82
94
|
constructor(directory) {
|
|
83
|
-
this._metadata = emptyEchoMetadata();
|
|
84
|
-
this._spaceLargeMetadata = new ComplexMap2(PublicKey2.hash);
|
|
85
|
-
this._metadataFile = void 0;
|
|
86
|
-
this.update = new Event();
|
|
87
|
-
this._invitationCleanupCtx = new Context(void 0, {
|
|
88
|
-
F: __dxlog_file2,
|
|
89
|
-
L: 55
|
|
90
|
-
});
|
|
91
95
|
this._directory = directory;
|
|
92
96
|
}
|
|
93
97
|
get metadata() {
|
|
@@ -429,9 +433,11 @@ var startAfter = (timeframe) => timeframe.frames().map(([feedKey, index]) => ({
|
|
|
429
433
|
index: index + 1
|
|
430
434
|
}));
|
|
431
435
|
var TimeframeClock = class {
|
|
436
|
+
_timeframe;
|
|
437
|
+
update = new Event2();
|
|
438
|
+
_pendingTimeframe;
|
|
432
439
|
constructor(_timeframe = new Timeframe()) {
|
|
433
440
|
this._timeframe = _timeframe;
|
|
434
|
-
this.update = new Event2();
|
|
435
441
|
this._pendingTimeframe = _timeframe;
|
|
436
442
|
}
|
|
437
443
|
/**
|
|
@@ -498,7 +504,7 @@ _ts_decorate2([
|
|
|
498
504
|
], TimeframeClock.prototype, "waitUntilReached", null);
|
|
499
505
|
|
|
500
506
|
// src/pipeline/pipeline.ts
|
|
501
|
-
import { Event as Event3, sleepWithContext, synchronized as synchronized2
|
|
507
|
+
import { Event as Event3, Trigger, sleepWithContext, synchronized as synchronized2 } from "@dxos/async";
|
|
502
508
|
import { Context as Context2, rejectOnDispose } from "@dxos/context";
|
|
503
509
|
import { failUndefined } from "@dxos/debug";
|
|
504
510
|
import { FeedSetIterator } from "@dxos/feed-store";
|
|
@@ -547,17 +553,39 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
547
553
|
}
|
|
548
554
|
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/pipeline/pipeline.ts";
|
|
549
555
|
var PipelineState = class {
|
|
556
|
+
_feeds;
|
|
557
|
+
_timeframeClock;
|
|
558
|
+
/**
|
|
559
|
+
* @internal
|
|
560
|
+
*/
|
|
561
|
+
_ctx = new Context2(void 0, {
|
|
562
|
+
F: __dxlog_file5,
|
|
563
|
+
L: 42
|
|
564
|
+
});
|
|
565
|
+
// TODO(dmaretskyi): Remove?. Avoid accessing `_timeframeClock` before constructor initialization.
|
|
566
|
+
get timeframeUpdate() {
|
|
567
|
+
return this._timeframeClock.update;
|
|
568
|
+
}
|
|
569
|
+
stalled = new Event3();
|
|
570
|
+
/**
|
|
571
|
+
* @internal
|
|
572
|
+
*/
|
|
573
|
+
_startTimeframe = new Timeframe2();
|
|
574
|
+
/**
|
|
575
|
+
* Target timeframe we are waiting to reach.
|
|
576
|
+
*/
|
|
577
|
+
_targetTimeframe;
|
|
578
|
+
/**
|
|
579
|
+
* @internal
|
|
580
|
+
*/
|
|
581
|
+
_reachedTargetPromise;
|
|
582
|
+
/**
|
|
583
|
+
* @internal
|
|
584
|
+
*/
|
|
585
|
+
_reachedTarget = false;
|
|
550
586
|
constructor(_feeds, _timeframeClock) {
|
|
551
587
|
this._feeds = _feeds;
|
|
552
588
|
this._timeframeClock = _timeframeClock;
|
|
553
|
-
this._ctx = new Context2(void 0, {
|
|
554
|
-
F: __dxlog_file5,
|
|
555
|
-
L: 41
|
|
556
|
-
});
|
|
557
|
-
this.timeframeUpdate = this._timeframeClock.update;
|
|
558
|
-
this.stalled = new Event3();
|
|
559
|
-
this._startTimeframe = new Timeframe2();
|
|
560
|
-
this._reachedTarget = false;
|
|
561
589
|
}
|
|
562
590
|
/**
|
|
563
591
|
* Latest theoretical timeframe based on the last mutation in each feed.
|
|
@@ -603,7 +631,7 @@ var PipelineState = class {
|
|
|
603
631
|
*/
|
|
604
632
|
async waitUntilReachedTargetTimeframe({ ctx = new Context2(void 0, {
|
|
605
633
|
F: __dxlog_file5,
|
|
606
|
-
L:
|
|
634
|
+
L: 132
|
|
607
635
|
}), timeout, breakOnStall = true } = {}) {
|
|
608
636
|
log4("waitUntilReachedTargetTimeframe", {
|
|
609
637
|
timeout,
|
|
@@ -611,7 +639,7 @@ var PipelineState = class {
|
|
|
611
639
|
target: this.targetTimeframe
|
|
612
640
|
}, {
|
|
613
641
|
F: __dxlog_file5,
|
|
614
|
-
L:
|
|
642
|
+
L: 136,
|
|
615
643
|
S: this,
|
|
616
644
|
C: (f, a) => f(...a)
|
|
617
645
|
});
|
|
@@ -643,7 +671,7 @@ var PipelineState = class {
|
|
|
643
671
|
dependencies: Timeframe2.dependencies(this.targetTimeframe, this.timeframe)
|
|
644
672
|
}, {
|
|
645
673
|
F: __dxlog_file5,
|
|
646
|
-
L:
|
|
674
|
+
L: 164,
|
|
647
675
|
S: this,
|
|
648
676
|
C: (f, a) => f(...a)
|
|
649
677
|
});
|
|
@@ -655,28 +683,30 @@ var PipelineState = class {
|
|
|
655
683
|
}
|
|
656
684
|
};
|
|
657
685
|
var Pipeline = class {
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
686
|
+
_timeframeClock = new TimeframeClock(new Timeframe2());
|
|
687
|
+
_feeds = new ComplexMap3(PublicKey3.hash);
|
|
688
|
+
// External state accessor.
|
|
689
|
+
_state = new PipelineState(this._feeds, this._timeframeClock);
|
|
690
|
+
// Waits for the message consumer to process the message and yield control back to the pipeline.
|
|
691
|
+
_processingTrigger = new Trigger().wake();
|
|
692
|
+
_pauseTrigger = new Trigger().wake();
|
|
693
|
+
// Pending downloads.
|
|
694
|
+
_downloads = new ComplexMap3((value) => PublicKey3.hash(value.key));
|
|
695
|
+
// Inbound feed stream.
|
|
696
|
+
_feedSetIterator;
|
|
697
|
+
// Outbound feed writer.
|
|
698
|
+
_writer;
|
|
699
|
+
_isStopping = false;
|
|
700
|
+
_isStarted = false;
|
|
701
|
+
_isBeingConsumed = false;
|
|
702
|
+
_isPaused = false;
|
|
673
703
|
get state() {
|
|
674
704
|
return this._state;
|
|
675
705
|
}
|
|
676
706
|
get writer() {
|
|
677
707
|
invariant4(this._writer, "Writer not set.", {
|
|
678
708
|
F: __dxlog_file5,
|
|
679
|
-
L:
|
|
709
|
+
L: 246,
|
|
680
710
|
S: this,
|
|
681
711
|
A: [
|
|
682
712
|
"this._writer",
|
|
@@ -705,7 +735,7 @@ var Pipeline = class {
|
|
|
705
735
|
setWriteFeed(feed) {
|
|
706
736
|
invariant4(!this._writer, "Writer already set.", {
|
|
707
737
|
F: __dxlog_file5,
|
|
708
|
-
L:
|
|
738
|
+
L: 273,
|
|
709
739
|
S: this,
|
|
710
740
|
A: [
|
|
711
741
|
"!this._writer",
|
|
@@ -714,7 +744,7 @@ var Pipeline = class {
|
|
|
714
744
|
});
|
|
715
745
|
invariant4(feed.properties.writable, "Feed must be writable.", {
|
|
716
746
|
F: __dxlog_file5,
|
|
717
|
-
L:
|
|
747
|
+
L: 274,
|
|
718
748
|
S: this,
|
|
719
749
|
A: [
|
|
720
750
|
"feed.properties.writable",
|
|
@@ -729,7 +759,7 @@ var Pipeline = class {
|
|
|
729
759
|
async start() {
|
|
730
760
|
invariant4(!this._isStarted, "Pipeline is already started.", {
|
|
731
761
|
F: __dxlog_file5,
|
|
732
|
-
L:
|
|
762
|
+
L: 287,
|
|
733
763
|
S: this,
|
|
734
764
|
A: [
|
|
735
765
|
"!this._isStarted",
|
|
@@ -738,7 +768,7 @@ var Pipeline = class {
|
|
|
738
768
|
});
|
|
739
769
|
log4("starting...", void 0, {
|
|
740
770
|
F: __dxlog_file5,
|
|
741
|
-
L:
|
|
771
|
+
L: 288,
|
|
742
772
|
S: this,
|
|
743
773
|
C: (f, a) => f(...a)
|
|
744
774
|
});
|
|
@@ -747,7 +777,7 @@ var Pipeline = class {
|
|
|
747
777
|
this._isStarted = true;
|
|
748
778
|
log4("started", void 0, {
|
|
749
779
|
F: __dxlog_file5,
|
|
750
|
-
L:
|
|
780
|
+
L: 292,
|
|
751
781
|
S: this,
|
|
752
782
|
C: (f, a) => f(...a)
|
|
753
783
|
});
|
|
@@ -760,7 +790,7 @@ var Pipeline = class {
|
|
|
760
790
|
async stop() {
|
|
761
791
|
log4("stopping...", void 0, {
|
|
762
792
|
F: __dxlog_file5,
|
|
763
|
-
L:
|
|
793
|
+
L: 303,
|
|
764
794
|
S: this,
|
|
765
795
|
C: (f, a) => f(...a)
|
|
766
796
|
});
|
|
@@ -774,14 +804,14 @@ var Pipeline = class {
|
|
|
774
804
|
await this._state._ctx.dispose();
|
|
775
805
|
this._state._ctx = new Context2(void 0, {
|
|
776
806
|
F: __dxlog_file5,
|
|
777
|
-
L:
|
|
807
|
+
L: 312
|
|
778
808
|
});
|
|
779
809
|
this._state._reachedTargetPromise = void 0;
|
|
780
810
|
this._state._reachedTarget = false;
|
|
781
811
|
this._isStarted = false;
|
|
782
812
|
log4("stopped", void 0, {
|
|
783
813
|
F: __dxlog_file5,
|
|
784
|
-
L:
|
|
814
|
+
L: 316,
|
|
785
815
|
S: this,
|
|
786
816
|
C: (f, a) => f(...a)
|
|
787
817
|
});
|
|
@@ -793,7 +823,7 @@ var Pipeline = class {
|
|
|
793
823
|
async setCursor(timeframe) {
|
|
794
824
|
invariant4(!this._isStarted || this._isPaused, "Invalid state.", {
|
|
795
825
|
F: __dxlog_file5,
|
|
796
|
-
L:
|
|
826
|
+
L: 325,
|
|
797
827
|
S: this,
|
|
798
828
|
A: [
|
|
799
829
|
"!this._isStarted || this._isPaused",
|
|
@@ -822,7 +852,7 @@ var Pipeline = class {
|
|
|
822
852
|
async unpause() {
|
|
823
853
|
invariant4(this._isPaused, "Pipeline is not paused.", {
|
|
824
854
|
F: __dxlog_file5,
|
|
825
|
-
L:
|
|
855
|
+
L: 354,
|
|
826
856
|
S: this,
|
|
827
857
|
A: [
|
|
828
858
|
"this._isPaused",
|
|
@@ -842,7 +872,7 @@ var Pipeline = class {
|
|
|
842
872
|
async *consume() {
|
|
843
873
|
invariant4(!this._isBeingConsumed, "Pipeline is already being consumed.", {
|
|
844
874
|
F: __dxlog_file5,
|
|
845
|
-
L:
|
|
875
|
+
L: 369,
|
|
846
876
|
S: this,
|
|
847
877
|
A: [
|
|
848
878
|
"!this._isBeingConsumed",
|
|
@@ -852,7 +882,7 @@ var Pipeline = class {
|
|
|
852
882
|
this._isBeingConsumed = true;
|
|
853
883
|
invariant4(this._feedSetIterator, "Iterator not initialized.", {
|
|
854
884
|
F: __dxlog_file5,
|
|
855
|
-
L:
|
|
885
|
+
L: 372,
|
|
856
886
|
S: this,
|
|
857
887
|
A: [
|
|
858
888
|
"this._feedSetIterator",
|
|
@@ -866,7 +896,7 @@ var Pipeline = class {
|
|
|
866
896
|
if (lastFeedSetIterator !== this._feedSetIterator) {
|
|
867
897
|
invariant4(this._feedSetIterator, "Iterator not initialized.", {
|
|
868
898
|
F: __dxlog_file5,
|
|
869
|
-
L:
|
|
899
|
+
L: 381,
|
|
870
900
|
S: this,
|
|
871
901
|
A: [
|
|
872
902
|
"this._feedSetIterator",
|
|
@@ -901,7 +931,7 @@ var Pipeline = class {
|
|
|
901
931
|
length: feed.length
|
|
902
932
|
}, {
|
|
903
933
|
F: __dxlog_file5,
|
|
904
|
-
L:
|
|
934
|
+
L: 410,
|
|
905
935
|
S: this,
|
|
906
936
|
C: (f, a) => f(...a)
|
|
907
937
|
});
|
|
@@ -915,7 +945,7 @@ var Pipeline = class {
|
|
|
915
945
|
data
|
|
916
946
|
}, {
|
|
917
947
|
F: __dxlog_file5,
|
|
918
|
-
L:
|
|
948
|
+
L: 415,
|
|
919
949
|
S: this,
|
|
920
950
|
C: (f, a) => f(...a)
|
|
921
951
|
});
|
|
@@ -934,7 +964,7 @@ var Pipeline = class {
|
|
|
934
964
|
targetTimeframe: this._state.targetTimeframe
|
|
935
965
|
}, {
|
|
936
966
|
F: __dxlog_file5,
|
|
937
|
-
L:
|
|
967
|
+
L: 429,
|
|
938
968
|
S: this,
|
|
939
969
|
C: (f, a) => f(...a)
|
|
940
970
|
});
|
|
@@ -971,6 +1001,20 @@ import { schema as schema3 } from "@dxos/protocols/proto";
|
|
|
971
1001
|
import { RpcExtension } from "@dxos/teleport";
|
|
972
1002
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/space/auth.ts";
|
|
973
1003
|
var AuthExtension = class extends RpcExtension {
|
|
1004
|
+
_authParams;
|
|
1005
|
+
_ctx = new Context3({
|
|
1006
|
+
onError: (err) => {
|
|
1007
|
+
log5.catch(err, void 0, {
|
|
1008
|
+
F: __dxlog_file6,
|
|
1009
|
+
L: 28,
|
|
1010
|
+
S: this,
|
|
1011
|
+
C: (f, a) => f(...a)
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
}, {
|
|
1015
|
+
F: __dxlog_file6,
|
|
1016
|
+
L: 26
|
|
1017
|
+
});
|
|
974
1018
|
constructor(_authParams) {
|
|
975
1019
|
super({
|
|
976
1020
|
requested: {
|
|
@@ -980,19 +1024,7 @@ var AuthExtension = class extends RpcExtension {
|
|
|
980
1024
|
AuthService: schema3.getService("dxos.mesh.teleport.auth.AuthService")
|
|
981
1025
|
},
|
|
982
1026
|
timeout: 60 * 1e3
|
|
983
|
-
}), this._authParams = _authParams
|
|
984
|
-
onError: (err) => {
|
|
985
|
-
log5.catch(err, void 0, {
|
|
986
|
-
F: __dxlog_file6,
|
|
987
|
-
L: 28,
|
|
988
|
-
S: this,
|
|
989
|
-
C: (f, a) => f(...a)
|
|
990
|
-
});
|
|
991
|
-
}
|
|
992
|
-
}, {
|
|
993
|
-
F: __dxlog_file6,
|
|
994
|
-
L: 26
|
|
995
|
-
});
|
|
1027
|
+
}), this._authParams = _authParams;
|
|
996
1028
|
}
|
|
997
1029
|
async getHandlers() {
|
|
998
1030
|
return {
|
|
@@ -1070,7 +1102,7 @@ var AuthExtension = class extends RpcExtension {
|
|
|
1070
1102
|
};
|
|
1071
1103
|
|
|
1072
1104
|
// src/space/space.ts
|
|
1073
|
-
import { Event as Event4, scheduleMicroTask, synchronized as synchronized3, trackLeaks as trackLeaks2 } from "@dxos/async";
|
|
1105
|
+
import { Event as Event4, scheduleMicroTask as scheduleMicroTask2, synchronized as synchronized3, trackLeaks as trackLeaks2 } from "@dxos/async";
|
|
1074
1106
|
import { Resource } from "@dxos/context";
|
|
1075
1107
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1076
1108
|
import { log as log7, logInfo } from "@dxos/log";
|
|
@@ -1079,7 +1111,7 @@ import { trace as trace2 } from "@dxos/tracing";
|
|
|
1079
1111
|
import { Callback as Callback2 } from "@dxos/util";
|
|
1080
1112
|
|
|
1081
1113
|
// src/space/control-pipeline.ts
|
|
1082
|
-
import { DeferredTask, sleepWithContext as sleepWithContext2, trackLeaks } from "@dxos/async";
|
|
1114
|
+
import { DeferredTask, scheduleMicroTask, sleepWithContext as sleepWithContext2, trackLeaks } from "@dxos/async";
|
|
1083
1115
|
import { Context as Context4 } from "@dxos/context";
|
|
1084
1116
|
import { SpaceStateMachine } from "@dxos/credentials";
|
|
1085
1117
|
import { PublicKey as PublicKey4 } from "@dxos/keys";
|
|
@@ -1099,19 +1131,28 @@ var TIMEFRAME_SAVE_DEBOUNCE_INTERVAL = 500;
|
|
|
1099
1131
|
var CONTROL_PIPELINE_SNAPSHOT_DELAY = 1e4;
|
|
1100
1132
|
var USE_SNAPSHOTS = true;
|
|
1101
1133
|
var ControlPipeline = class {
|
|
1134
|
+
_ctx = new Context4(void 0, {
|
|
1135
|
+
F: __dxlog_file7,
|
|
1136
|
+
L: 47
|
|
1137
|
+
});
|
|
1138
|
+
_pipeline;
|
|
1139
|
+
_spaceStateMachine;
|
|
1140
|
+
_spaceKey;
|
|
1141
|
+
_metadata;
|
|
1142
|
+
_targetTimeframe;
|
|
1143
|
+
_lastTimeframeSaveTime = Date.now();
|
|
1144
|
+
onFeedAdmitted = new Callback();
|
|
1145
|
+
onMemberRoleChanged;
|
|
1146
|
+
onCredentialProcessed;
|
|
1147
|
+
onDelegatedInvitation;
|
|
1148
|
+
onDelegatedInvitationRemoved;
|
|
1149
|
+
_usage = new TimeUsageCounter();
|
|
1150
|
+
_mutations = new TimeSeriesCounter();
|
|
1151
|
+
_snapshotTask = new DeferredTask(this._ctx, async () => {
|
|
1152
|
+
await sleepWithContext2(this._ctx, CONTROL_PIPELINE_SNAPSHOT_DELAY);
|
|
1153
|
+
await this._saveSnapshot();
|
|
1154
|
+
});
|
|
1102
1155
|
constructor({ spaceKey, genesisFeed, feedProvider, metadataStore }) {
|
|
1103
|
-
this._ctx = new Context4(void 0, {
|
|
1104
|
-
F: __dxlog_file7,
|
|
1105
|
-
L: 47
|
|
1106
|
-
});
|
|
1107
|
-
this._lastTimeframeSaveTime = Date.now();
|
|
1108
|
-
this.onFeedAdmitted = new Callback();
|
|
1109
|
-
this._usage = new TimeUsageCounter();
|
|
1110
|
-
this._mutations = new TimeSeriesCounter();
|
|
1111
|
-
this._snapshotTask = new DeferredTask(this._ctx, async () => {
|
|
1112
|
-
await sleepWithContext2(this._ctx, CONTROL_PIPELINE_SNAPSHOT_DELAY);
|
|
1113
|
-
await this._saveSnapshot();
|
|
1114
|
-
});
|
|
1115
1156
|
this._spaceKey = spaceKey;
|
|
1116
1157
|
this._metadata = metadataStore;
|
|
1117
1158
|
this._pipeline = new Pipeline();
|
|
@@ -1127,16 +1168,19 @@ var ControlPipeline = class {
|
|
|
1127
1168
|
C: (f, a) => f(...a)
|
|
1128
1169
|
});
|
|
1129
1170
|
if (info.assertion.designation === AdmittedFeed.Designation.CONTROL && !info.key.equals(genesisFeed.key)) {
|
|
1130
|
-
|
|
1171
|
+
scheduleMicroTask(this._ctx, async () => {
|
|
1131
1172
|
try {
|
|
1132
1173
|
const feed = await feedProvider(info.key);
|
|
1174
|
+
if (this._ctx.disposed) {
|
|
1175
|
+
return;
|
|
1176
|
+
}
|
|
1133
1177
|
if (!this._pipeline.hasFeed(feed.key)) {
|
|
1134
1178
|
await this._pipeline.addFeed(feed);
|
|
1135
1179
|
}
|
|
1136
1180
|
} catch (err) {
|
|
1137
1181
|
log6.catch(err, void 0, {
|
|
1138
1182
|
F: __dxlog_file7,
|
|
1139
|
-
L:
|
|
1183
|
+
L: 96,
|
|
1140
1184
|
S: this,
|
|
1141
1185
|
C: (f, a) => f(...a)
|
|
1142
1186
|
});
|
|
@@ -1168,7 +1212,7 @@ var ControlPipeline = class {
|
|
|
1168
1212
|
tf: snapshot?.timeframe
|
|
1169
1213
|
}, {
|
|
1170
1214
|
F: __dxlog_file7,
|
|
1171
|
-
L:
|
|
1215
|
+
L: 126,
|
|
1172
1216
|
S: this,
|
|
1173
1217
|
C: (f, a) => f(...a)
|
|
1174
1218
|
});
|
|
@@ -1177,20 +1221,20 @@ var ControlPipeline = class {
|
|
|
1177
1221
|
}
|
|
1178
1222
|
log6("starting...", void 0, {
|
|
1179
1223
|
F: __dxlog_file7,
|
|
1180
|
-
L:
|
|
1224
|
+
L: 131,
|
|
1181
1225
|
S: this,
|
|
1182
1226
|
C: (f, a) => f(...a)
|
|
1183
1227
|
});
|
|
1184
1228
|
setTimeout(async () => {
|
|
1185
1229
|
void this._consumePipeline(new Context4(void 0, {
|
|
1186
1230
|
F: __dxlog_file7,
|
|
1187
|
-
L:
|
|
1231
|
+
L: 133
|
|
1188
1232
|
}));
|
|
1189
1233
|
});
|
|
1190
1234
|
await this._pipeline.start();
|
|
1191
1235
|
log6("started", void 0, {
|
|
1192
1236
|
F: __dxlog_file7,
|
|
1193
|
-
L:
|
|
1237
|
+
L: 137,
|
|
1194
1238
|
S: this,
|
|
1195
1239
|
C: (f, a) => f(...a)
|
|
1196
1240
|
});
|
|
@@ -1207,7 +1251,7 @@ var ControlPipeline = class {
|
|
|
1207
1251
|
message
|
|
1208
1252
|
}, {
|
|
1209
1253
|
F: __dxlog_file7,
|
|
1210
|
-
L:
|
|
1254
|
+
L: 150,
|
|
1211
1255
|
S: this,
|
|
1212
1256
|
C: (f, a) => f(...a)
|
|
1213
1257
|
});
|
|
@@ -1229,7 +1273,7 @@ var ControlPipeline = class {
|
|
|
1229
1273
|
snapshot: getSnapshotLoggerContext(snapshot)
|
|
1230
1274
|
}, {
|
|
1231
1275
|
F: __dxlog_file7,
|
|
1232
|
-
L:
|
|
1276
|
+
L: 166,
|
|
1233
1277
|
S: this,
|
|
1234
1278
|
C: (f, a) => f(...a)
|
|
1235
1279
|
});
|
|
@@ -1244,7 +1288,7 @@ var ControlPipeline = class {
|
|
|
1244
1288
|
} catch (err) {
|
|
1245
1289
|
log6.catch(err, void 0, {
|
|
1246
1290
|
F: __dxlog_file7,
|
|
1247
|
-
L:
|
|
1291
|
+
L: 179,
|
|
1248
1292
|
S: this,
|
|
1249
1293
|
C: (f, a) => f(...a)
|
|
1250
1294
|
});
|
|
@@ -1258,7 +1302,7 @@ var ControlPipeline = class {
|
|
|
1258
1302
|
seq: msg.seq
|
|
1259
1303
|
}, {
|
|
1260
1304
|
F: __dxlog_file7,
|
|
1261
|
-
L:
|
|
1305
|
+
L: 188,
|
|
1262
1306
|
S: this,
|
|
1263
1307
|
C: (f, a) => f(...a)
|
|
1264
1308
|
});
|
|
@@ -1273,7 +1317,7 @@ var ControlPipeline = class {
|
|
|
1273
1317
|
msg
|
|
1274
1318
|
}, {
|
|
1275
1319
|
F: __dxlog_file7,
|
|
1276
|
-
L:
|
|
1320
|
+
L: 197,
|
|
1277
1321
|
S: this,
|
|
1278
1322
|
C: (f, a) => f(...a)
|
|
1279
1323
|
});
|
|
@@ -1292,7 +1336,7 @@ var ControlPipeline = class {
|
|
|
1292
1336
|
async stop() {
|
|
1293
1337
|
log6("stopping...", void 0, {
|
|
1294
1338
|
F: __dxlog_file7,
|
|
1295
|
-
L:
|
|
1339
|
+
L: 217,
|
|
1296
1340
|
S: this,
|
|
1297
1341
|
C: (f, a) => f(...a)
|
|
1298
1342
|
});
|
|
@@ -1301,7 +1345,7 @@ var ControlPipeline = class {
|
|
|
1301
1345
|
await this._saveTargetTimeframe(this._pipeline.state.timeframe);
|
|
1302
1346
|
log6("stopped", void 0, {
|
|
1303
1347
|
F: __dxlog_file7,
|
|
1304
|
-
L:
|
|
1348
|
+
L: 221,
|
|
1305
1349
|
S: this,
|
|
1306
1350
|
C: (f, a) => f(...a)
|
|
1307
1351
|
});
|
|
@@ -1314,7 +1358,7 @@ var ControlPipeline = class {
|
|
|
1314
1358
|
} catch (err) {
|
|
1315
1359
|
log6(err, void 0, {
|
|
1316
1360
|
F: __dxlog_file7,
|
|
1317
|
-
L:
|
|
1361
|
+
L: 230,
|
|
1318
1362
|
S: this,
|
|
1319
1363
|
C: (f, a) => f(...a)
|
|
1320
1364
|
});
|
|
@@ -1364,13 +1408,21 @@ function _ts_decorate5(decorators, target, key, desc) {
|
|
|
1364
1408
|
}
|
|
1365
1409
|
var __dxlog_file8 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space.ts";
|
|
1366
1410
|
var Space = class extends Resource {
|
|
1411
|
+
onCredentialProcessed = new Callback2();
|
|
1412
|
+
stateUpdate = new Event4();
|
|
1413
|
+
protocol;
|
|
1414
|
+
_id;
|
|
1415
|
+
_key;
|
|
1416
|
+
_genesisFeedKey;
|
|
1417
|
+
_feedProvider;
|
|
1418
|
+
_controlPipeline;
|
|
1419
|
+
_controlFeed;
|
|
1420
|
+
_dataFeed;
|
|
1367
1421
|
constructor(params) {
|
|
1368
1422
|
super();
|
|
1369
|
-
this.onCredentialProcessed = new Callback2();
|
|
1370
|
-
this.stateUpdate = new Event4();
|
|
1371
1423
|
invariant6(params.spaceKey && params.feedProvider, void 0, {
|
|
1372
1424
|
F: __dxlog_file8,
|
|
1373
|
-
L:
|
|
1425
|
+
L: 73,
|
|
1374
1426
|
S: this,
|
|
1375
1427
|
A: [
|
|
1376
1428
|
"params.spaceKey && params.feedProvider",
|
|
@@ -1390,7 +1442,7 @@ var Space = class extends Resource {
|
|
|
1390
1442
|
this._controlPipeline.onFeedAdmitted.set(async (info) => {
|
|
1391
1443
|
const sparse = info.assertion.designation === AdmittedFeed2.Designation.DATA;
|
|
1392
1444
|
if (!info.key.equals(params.genesisFeed.key)) {
|
|
1393
|
-
|
|
1445
|
+
scheduleMicroTask2(this._ctx, async () => {
|
|
1394
1446
|
await this.protocol.addFeed(await params.feedProvider(info.key, {
|
|
1395
1447
|
sparse
|
|
1396
1448
|
}));
|
|
@@ -1403,7 +1455,7 @@ var Space = class extends Resource {
|
|
|
1403
1455
|
credential
|
|
1404
1456
|
}, {
|
|
1405
1457
|
F: __dxlog_file8,
|
|
1406
|
-
L:
|
|
1458
|
+
L: 100,
|
|
1407
1459
|
S: this,
|
|
1408
1460
|
C: (f, a) => f(...a)
|
|
1409
1461
|
});
|
|
@@ -1414,7 +1466,7 @@ var Space = class extends Resource {
|
|
|
1414
1466
|
invitation
|
|
1415
1467
|
}, {
|
|
1416
1468
|
F: __dxlog_file8,
|
|
1417
|
-
L:
|
|
1469
|
+
L: 104,
|
|
1418
1470
|
S: this,
|
|
1419
1471
|
C: (f, a) => f(...a)
|
|
1420
1472
|
});
|
|
@@ -1425,7 +1477,7 @@ var Space = class extends Resource {
|
|
|
1425
1477
|
invitation
|
|
1426
1478
|
}, {
|
|
1427
1479
|
F: __dxlog_file8,
|
|
1428
|
-
L:
|
|
1480
|
+
L: 108,
|
|
1429
1481
|
S: this,
|
|
1430
1482
|
C: (f, a) => f(...a)
|
|
1431
1483
|
});
|
|
@@ -1439,7 +1491,7 @@ var Space = class extends Resource {
|
|
|
1439
1491
|
])
|
|
1440
1492
|
}), {
|
|
1441
1493
|
F: __dxlog_file8,
|
|
1442
|
-
L:
|
|
1494
|
+
L: 112,
|
|
1443
1495
|
S: this,
|
|
1444
1496
|
C: (f, a) => f(...a)
|
|
1445
1497
|
});
|
|
@@ -1474,7 +1526,7 @@ var Space = class extends Resource {
|
|
|
1474
1526
|
async setControlFeed(feed) {
|
|
1475
1527
|
invariant6(!this._controlFeed, "Control feed already set.", {
|
|
1476
1528
|
F: __dxlog_file8,
|
|
1477
|
-
L:
|
|
1529
|
+
L: 156,
|
|
1478
1530
|
S: this,
|
|
1479
1531
|
A: [
|
|
1480
1532
|
"!this._controlFeed",
|
|
@@ -1488,7 +1540,7 @@ var Space = class extends Resource {
|
|
|
1488
1540
|
async setDataFeed(feed) {
|
|
1489
1541
|
invariant6(!this._dataFeed, "Data feed already set.", {
|
|
1490
1542
|
F: __dxlog_file8,
|
|
1491
|
-
L:
|
|
1543
|
+
L: 163,
|
|
1492
1544
|
S: this,
|
|
1493
1545
|
A: [
|
|
1494
1546
|
"!this._dataFeed",
|
|
@@ -1507,14 +1559,14 @@ var Space = class extends Resource {
|
|
|
1507
1559
|
async _open(ctx) {
|
|
1508
1560
|
log7("opening...", void 0, {
|
|
1509
1561
|
F: __dxlog_file8,
|
|
1510
|
-
L:
|
|
1562
|
+
L: 177,
|
|
1511
1563
|
S: this,
|
|
1512
1564
|
C: (f, a) => f(...a)
|
|
1513
1565
|
});
|
|
1514
1566
|
await this._controlPipeline.start();
|
|
1515
1567
|
log7("opened", void 0, {
|
|
1516
1568
|
F: __dxlog_file8,
|
|
1517
|
-
L:
|
|
1569
|
+
L: 182,
|
|
1518
1570
|
S: this,
|
|
1519
1571
|
C: (f, a) => f(...a)
|
|
1520
1572
|
});
|
|
@@ -1522,7 +1574,7 @@ var Space = class extends Resource {
|
|
|
1522
1574
|
async startProtocol() {
|
|
1523
1575
|
invariant6(this.isOpen, void 0, {
|
|
1524
1576
|
F: __dxlog_file8,
|
|
1525
|
-
L:
|
|
1577
|
+
L: 187,
|
|
1526
1578
|
S: this,
|
|
1527
1579
|
A: [
|
|
1528
1580
|
"this.isOpen",
|
|
@@ -1537,7 +1589,7 @@ var Space = class extends Resource {
|
|
|
1537
1589
|
key: this._key
|
|
1538
1590
|
}, {
|
|
1539
1591
|
F: __dxlog_file8,
|
|
1540
|
-
L:
|
|
1592
|
+
L: 194,
|
|
1541
1593
|
S: this,
|
|
1542
1594
|
C: (f, a) => f(...a)
|
|
1543
1595
|
});
|
|
@@ -1545,7 +1597,7 @@ var Space = class extends Resource {
|
|
|
1545
1597
|
await this._controlPipeline.stop();
|
|
1546
1598
|
log7("closed", void 0, {
|
|
1547
1599
|
F: __dxlog_file8,
|
|
1548
|
-
L:
|
|
1600
|
+
L: 200,
|
|
1549
1601
|
S: this,
|
|
1550
1602
|
C: (f, a) => f(...a)
|
|
1551
1603
|
});
|
|
@@ -1587,15 +1639,18 @@ import { schema as schema4 } from "@dxos/protocols/proto";
|
|
|
1587
1639
|
import { RpcExtension as RpcExtension2 } from "@dxos/teleport";
|
|
1588
1640
|
var __dxlog_file9 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/space/admission-discovery-extension.ts";
|
|
1589
1641
|
var CredentialRetrieverExtension = class extends RpcExtension2 {
|
|
1642
|
+
_request;
|
|
1643
|
+
_onResult;
|
|
1644
|
+
_ctx = new Context5(void 0, {
|
|
1645
|
+
F: __dxlog_file9,
|
|
1646
|
+
L: 26
|
|
1647
|
+
});
|
|
1590
1648
|
constructor(_request, _onResult) {
|
|
1591
1649
|
super({
|
|
1592
1650
|
requested: {
|
|
1593
1651
|
AdmissionDiscoveryService: schema4.getService("dxos.mesh.teleport.AdmissionDiscoveryService")
|
|
1594
1652
|
}
|
|
1595
|
-
}), this._request = _request, this._onResult = _onResult
|
|
1596
|
-
F: __dxlog_file9,
|
|
1597
|
-
L: 26
|
|
1598
|
-
});
|
|
1653
|
+
}), this._request = _request, this._onResult = _onResult;
|
|
1599
1654
|
}
|
|
1600
1655
|
async getHandlers() {
|
|
1601
1656
|
return {};
|
|
@@ -1619,6 +1674,7 @@ var CredentialRetrieverExtension = class extends RpcExtension2 {
|
|
|
1619
1674
|
}
|
|
1620
1675
|
};
|
|
1621
1676
|
var CredentialServerExtension = class extends RpcExtension2 {
|
|
1677
|
+
_space;
|
|
1622
1678
|
constructor(_space) {
|
|
1623
1679
|
super({
|
|
1624
1680
|
exposed: {
|
|
@@ -1663,16 +1719,34 @@ var __dxlog_file10 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/space/
|
|
|
1663
1719
|
var MOCK_AUTH_PROVIDER = async (nonce) => Buffer.from("mock");
|
|
1664
1720
|
var MOCK_AUTH_VERIFIER = async (nonce, credential) => true;
|
|
1665
1721
|
var SpaceProtocol = class {
|
|
1722
|
+
_networkManager;
|
|
1723
|
+
_swarmIdentity;
|
|
1724
|
+
_onSessionAuth;
|
|
1725
|
+
_onAuthFailure;
|
|
1726
|
+
blobSync;
|
|
1727
|
+
_disableP2pReplication;
|
|
1728
|
+
_topic;
|
|
1729
|
+
_spaceKey;
|
|
1730
|
+
_feeds = /* @__PURE__ */ new Set();
|
|
1731
|
+
_sessions = new ComplexMap4(PublicKey5.hash);
|
|
1732
|
+
// TODO(burdon): Move to config (with sensible defaults).
|
|
1733
|
+
_topology = new MMSTTopology({
|
|
1734
|
+
originateConnections: 4,
|
|
1735
|
+
maxPeers: 10,
|
|
1736
|
+
sampleSize: 20
|
|
1737
|
+
});
|
|
1738
|
+
_connection;
|
|
1739
|
+
feedAdded = new CallbackCollection();
|
|
1740
|
+
get sessions() {
|
|
1741
|
+
return this._sessions;
|
|
1742
|
+
}
|
|
1743
|
+
get feeds() {
|
|
1744
|
+
return this._feeds;
|
|
1745
|
+
}
|
|
1746
|
+
get _ownPeerKey() {
|
|
1747
|
+
return this._swarmIdentity.peerKey;
|
|
1748
|
+
}
|
|
1666
1749
|
constructor({ topic, swarmIdentity, networkManager, onSessionAuth, onAuthFailure, blobStore, disableP2pReplication }) {
|
|
1667
|
-
this._feeds = /* @__PURE__ */ new Set();
|
|
1668
|
-
this._sessions = new ComplexMap4(PublicKey5.hash);
|
|
1669
|
-
// TODO(burdon): Move to config (with sensible defaults).
|
|
1670
|
-
this._topology = new MMSTTopology({
|
|
1671
|
-
originateConnections: 4,
|
|
1672
|
-
maxPeers: 10,
|
|
1673
|
-
sampleSize: 20
|
|
1674
|
-
});
|
|
1675
|
-
this.feedAdded = new CallbackCollection();
|
|
1676
1750
|
this._spaceKey = topic;
|
|
1677
1751
|
this._networkManager = networkManager;
|
|
1678
1752
|
this._swarmIdentity = swarmIdentity;
|
|
@@ -1684,22 +1758,13 @@ var SpaceProtocol = class {
|
|
|
1684
1758
|
this._topic = subtleCrypto2.digest("SHA-256", topic.asBuffer()).then(discoveryKey).then(PublicKey5.from);
|
|
1685
1759
|
this._disableP2pReplication = disableP2pReplication ?? false;
|
|
1686
1760
|
}
|
|
1687
|
-
get sessions() {
|
|
1688
|
-
return this._sessions;
|
|
1689
|
-
}
|
|
1690
|
-
get feeds() {
|
|
1691
|
-
return this._feeds;
|
|
1692
|
-
}
|
|
1693
|
-
get _ownPeerKey() {
|
|
1694
|
-
return this._swarmIdentity.peerKey;
|
|
1695
|
-
}
|
|
1696
1761
|
// TODO(burdon): Create abstraction for Space (e.g., add keys and have provider).
|
|
1697
1762
|
async addFeed(feed) {
|
|
1698
1763
|
log8("addFeed", {
|
|
1699
1764
|
key: feed.key
|
|
1700
1765
|
}, {
|
|
1701
1766
|
F: __dxlog_file10,
|
|
1702
|
-
L:
|
|
1767
|
+
L: 131,
|
|
1703
1768
|
S: this,
|
|
1704
1769
|
C: (f, a) => f(...a)
|
|
1705
1770
|
});
|
|
@@ -1718,7 +1783,7 @@ var SpaceProtocol = class {
|
|
|
1718
1783
|
await this.blobSync.open();
|
|
1719
1784
|
log8("starting...", void 0, {
|
|
1720
1785
|
F: __dxlog_file10,
|
|
1721
|
-
L:
|
|
1786
|
+
L: 152,
|
|
1722
1787
|
S: this,
|
|
1723
1788
|
C: (f, a) => f(...a)
|
|
1724
1789
|
});
|
|
@@ -1731,7 +1796,7 @@ var SpaceProtocol = class {
|
|
|
1731
1796
|
});
|
|
1732
1797
|
log8("started", void 0, {
|
|
1733
1798
|
F: __dxlog_file10,
|
|
1734
|
-
L:
|
|
1799
|
+
L: 161,
|
|
1735
1800
|
S: this,
|
|
1736
1801
|
C: (f, a) => f(...a)
|
|
1737
1802
|
});
|
|
@@ -1744,14 +1809,14 @@ var SpaceProtocol = class {
|
|
|
1744
1809
|
if (this._connection) {
|
|
1745
1810
|
log8("stopping...", void 0, {
|
|
1746
1811
|
F: __dxlog_file10,
|
|
1747
|
-
L:
|
|
1812
|
+
L: 172,
|
|
1748
1813
|
S: this,
|
|
1749
1814
|
C: (f, a) => f(...a)
|
|
1750
1815
|
});
|
|
1751
1816
|
await this._connection.close();
|
|
1752
1817
|
log8("stopped", void 0, {
|
|
1753
1818
|
F: __dxlog_file10,
|
|
1754
|
-
L:
|
|
1819
|
+
L: 174,
|
|
1755
1820
|
S: this,
|
|
1756
1821
|
C: (f, a) => f(...a)
|
|
1757
1822
|
});
|
|
@@ -1788,20 +1853,33 @@ _ts_decorate6([
|
|
|
1788
1853
|
SpaceProtocol = _ts_decorate6([
|
|
1789
1854
|
trace3.resource()
|
|
1790
1855
|
], SpaceProtocol);
|
|
1791
|
-
var AuthStatus = /* @__PURE__ */ function(AuthStatus2) {
|
|
1856
|
+
var AuthStatus = /* @__PURE__ */ (function(AuthStatus2) {
|
|
1792
1857
|
AuthStatus2["INITIAL"] = "INITIAL";
|
|
1793
1858
|
AuthStatus2["SUCCESS"] = "SUCCESS";
|
|
1794
1859
|
AuthStatus2["FAILURE"] = "FAILURE";
|
|
1795
1860
|
return AuthStatus2;
|
|
1796
|
-
}({});
|
|
1861
|
+
})({});
|
|
1797
1862
|
var SpaceProtocolSession = class {
|
|
1863
|
+
_wireParams;
|
|
1864
|
+
_disableP2pReplication;
|
|
1865
|
+
_onSessionAuth;
|
|
1866
|
+
_onAuthFailure;
|
|
1867
|
+
_swarmIdentity;
|
|
1868
|
+
_blobSync;
|
|
1869
|
+
_teleport;
|
|
1870
|
+
// TODO(dmaretskyi): Start with upload=false when switching it on the fly works.
|
|
1871
|
+
replicator = new ReplicatorExtension().setOptions({
|
|
1872
|
+
upload: true
|
|
1873
|
+
});
|
|
1874
|
+
_authStatus = "INITIAL";
|
|
1875
|
+
get authStatus() {
|
|
1876
|
+
return this._authStatus;
|
|
1877
|
+
}
|
|
1878
|
+
get stats() {
|
|
1879
|
+
return this._teleport.stats;
|
|
1880
|
+
}
|
|
1798
1881
|
// TODO(dmaretskyi): Allow to pass in extra extensions.
|
|
1799
1882
|
constructor({ wireParams, swarmIdentity, onSessionAuth, onAuthFailure, blobSync, disableP2pReplication }) {
|
|
1800
|
-
// TODO(dmaretskyi): Start with upload=false when switching it on the fly works.
|
|
1801
|
-
this.replicator = new ReplicatorExtension().setOptions({
|
|
1802
|
-
upload: true
|
|
1803
|
-
});
|
|
1804
|
-
this._authStatus = "INITIAL";
|
|
1805
1883
|
this._wireParams = wireParams;
|
|
1806
1884
|
this._swarmIdentity = swarmIdentity;
|
|
1807
1885
|
this._onSessionAuth = onSessionAuth;
|
|
@@ -1810,12 +1888,6 @@ var SpaceProtocolSession = class {
|
|
|
1810
1888
|
this._teleport = new Teleport(wireParams);
|
|
1811
1889
|
this._disableP2pReplication = disableP2pReplication ?? false;
|
|
1812
1890
|
}
|
|
1813
|
-
get authStatus() {
|
|
1814
|
-
return this._authStatus;
|
|
1815
|
-
}
|
|
1816
|
-
get stats() {
|
|
1817
|
-
return this._teleport.stats;
|
|
1818
|
-
}
|
|
1819
1891
|
get stream() {
|
|
1820
1892
|
return this._teleport.stream;
|
|
1821
1893
|
}
|
|
@@ -1827,7 +1899,7 @@ var SpaceProtocolSession = class {
|
|
|
1827
1899
|
onAuthSuccess: () => {
|
|
1828
1900
|
log8("Peer authenticated", void 0, {
|
|
1829
1901
|
F: __dxlog_file10,
|
|
1830
|
-
L:
|
|
1902
|
+
L: 285,
|
|
1831
1903
|
S: this,
|
|
1832
1904
|
C: (f, a) => f(...a)
|
|
1833
1905
|
});
|
|
@@ -1847,7 +1919,7 @@ var SpaceProtocolSession = class {
|
|
|
1847
1919
|
async close() {
|
|
1848
1920
|
log8("close", void 0, {
|
|
1849
1921
|
F: __dxlog_file10,
|
|
1850
|
-
L:
|
|
1922
|
+
L: 304,
|
|
1851
1923
|
S: this,
|
|
1852
1924
|
C: (f, a) => f(...a)
|
|
1853
1925
|
});
|
|
@@ -1866,7 +1938,7 @@ _ts_decorate6([
|
|
|
1866
1938
|
|
|
1867
1939
|
// src/space/space-manager.ts
|
|
1868
1940
|
import { parseAutomergeUrl } from "@automerge/automerge-repo";
|
|
1869
|
-
import {
|
|
1941
|
+
import { Trigger as Trigger2, synchronized as synchronized4, trackLeaks as trackLeaks3 } from "@dxos/async";
|
|
1870
1942
|
import { getCredentialAssertion } from "@dxos/credentials";
|
|
1871
1943
|
import { failUndefined as failUndefined2 } from "@dxos/debug";
|
|
1872
1944
|
import { PublicKey as PublicKey6 } from "@dxos/keys";
|
|
@@ -1881,9 +1953,14 @@ function _ts_decorate7(decorators, target, key, desc) {
|
|
|
1881
1953
|
}
|
|
1882
1954
|
var __dxlog_file11 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space-manager.ts";
|
|
1883
1955
|
var SpaceManager = class {
|
|
1956
|
+
_spaces = new ComplexMap5(PublicKey6.hash);
|
|
1957
|
+
_feedStore;
|
|
1958
|
+
_networkManager;
|
|
1959
|
+
_metadataStore;
|
|
1960
|
+
_blobStore;
|
|
1961
|
+
_instanceId = PublicKey6.random().toHex();
|
|
1962
|
+
_disableP2pReplication;
|
|
1884
1963
|
constructor({ feedStore, networkManager, metadataStore, blobStore, disableP2pReplication }) {
|
|
1885
|
-
this._spaces = new ComplexMap5(PublicKey6.hash);
|
|
1886
|
-
this._instanceId = PublicKey6.random().toHex();
|
|
1887
1964
|
this._feedStore = feedStore;
|
|
1888
1965
|
this._networkManager = networkManager;
|
|
1889
1966
|
this._metadataStore = metadataStore;
|
|
@@ -1906,7 +1983,7 @@ var SpaceManager = class {
|
|
|
1906
1983
|
id: this._instanceId
|
|
1907
1984
|
}), {
|
|
1908
1985
|
F: __dxlog_file11,
|
|
1909
|
-
L:
|
|
1986
|
+
L: 103,
|
|
1910
1987
|
S: this,
|
|
1911
1988
|
C: (f, a) => f(...a)
|
|
1912
1989
|
});
|
|
@@ -1914,7 +1991,7 @@ var SpaceManager = class {
|
|
|
1914
1991
|
spaceKey: metadata.genesisFeedKey
|
|
1915
1992
|
}, {
|
|
1916
1993
|
F: __dxlog_file11,
|
|
1917
|
-
L:
|
|
1994
|
+
L: 104,
|
|
1918
1995
|
S: this,
|
|
1919
1996
|
C: (f, a) => f(...a)
|
|
1920
1997
|
});
|
|
@@ -1946,7 +2023,7 @@ var SpaceManager = class {
|
|
|
1946
2023
|
id: this._instanceId
|
|
1947
2024
|
}), {
|
|
1948
2025
|
F: __dxlog_file11,
|
|
1949
|
-
L:
|
|
2026
|
+
L: 134,
|
|
1950
2027
|
S: this,
|
|
1951
2028
|
C: (f, a) => f(...a)
|
|
1952
2029
|
});
|
|
@@ -1958,7 +2035,7 @@ var SpaceManager = class {
|
|
|
1958
2035
|
id: this._instanceId
|
|
1959
2036
|
}), {
|
|
1960
2037
|
F: __dxlog_file11,
|
|
1961
|
-
L:
|
|
2038
|
+
L: 140,
|
|
1962
2039
|
S: this,
|
|
1963
2040
|
C: (f, a) => f(...a)
|
|
1964
2041
|
});
|
|
@@ -1966,7 +2043,7 @@ var SpaceManager = class {
|
|
|
1966
2043
|
spaceKey: params.spaceKey
|
|
1967
2044
|
}, {
|
|
1968
2045
|
F: __dxlog_file11,
|
|
1969
|
-
L:
|
|
2046
|
+
L: 141,
|
|
1970
2047
|
S: this,
|
|
1971
2048
|
C: (f, a) => f(...a)
|
|
1972
2049
|
});
|
|
@@ -1994,7 +2071,7 @@ var SpaceManager = class {
|
|
|
1994
2071
|
id: this._instanceId
|
|
1995
2072
|
}), {
|
|
1996
2073
|
F: __dxlog_file11,
|
|
1997
|
-
L:
|
|
2074
|
+
L: 165,
|
|
1998
2075
|
S: this,
|
|
1999
2076
|
C: (f, a) => f(...a)
|
|
2000
2077
|
});
|
|
@@ -2005,7 +2082,7 @@ var SpaceManager = class {
|
|
|
2005
2082
|
error: err
|
|
2006
2083
|
}), {
|
|
2007
2084
|
F: __dxlog_file11,
|
|
2008
|
-
L:
|
|
2085
|
+
L: 168,
|
|
2009
2086
|
S: this,
|
|
2010
2087
|
C: (f, a) => f(...a)
|
|
2011
2088
|
});
|
|
@@ -2064,4 +2141,4 @@ export {
|
|
|
2064
2141
|
SpaceProtocolSession,
|
|
2065
2142
|
SpaceManager
|
|
2066
2143
|
};
|
|
2067
|
-
//# sourceMappingURL=chunk-
|
|
2144
|
+
//# sourceMappingURL=chunk-FR6GJ4S4.mjs.map
|