@dxos/echo-pipeline 0.1.53 → 0.1.54-main.270ec56
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-VTZ6AASA.mjs → chunk-OJGL5427.mjs} +446 -397
- package/dist/lib/browser/chunk-OJGL5427.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +2 -2
- package/dist/lib/browser/index.mjs.map +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +3 -3
- package/dist/lib/browser/testing/index.mjs.map +2 -2
- package/dist/lib/node/index.cjs +500 -451
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +491 -442
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/types/src/dbhost/data-service-host.d.ts +3 -0
- package/dist/types/src/dbhost/data-service-host.d.ts.map +1 -1
- package/dist/types/src/dbhost/data-service.d.ts +2 -2
- package/dist/types/src/dbhost/data-service.d.ts.map +1 -1
- package/dist/types/src/dbhost/snapshot-manager.d.ts +2 -0
- package/dist/types/src/dbhost/snapshot-manager.d.ts.map +1 -1
- package/dist/types/src/dbhost/snapshot-store.d.ts +2 -0
- package/dist/types/src/dbhost/snapshot-store.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts +4 -0
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/pipeline/message-selector.d.ts.map +1 -1
- package/dist/types/src/pipeline/pipeline.d.ts +0 -1
- package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
- package/dist/types/src/space/data-pipeline.d.ts +3 -3
- package/dist/types/src/space/data-pipeline.d.ts.map +1 -1
- package/dist/types/src/space/space-protocol.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts +0 -1
- package/dist/types/src/space/space.d.ts.map +1 -1
- package/package.json +31 -32
- package/src/common/feeds.ts +3 -3
- package/src/dbhost/data-service-host.ts +17 -4
- package/src/dbhost/data-service.ts +10 -6
- package/src/dbhost/snapshot-manager.ts +4 -4
- package/src/dbhost/snapshot-store.ts +3 -2
- package/src/metadata/metadata-store.ts +19 -6
- package/src/pipeline/message-selector.ts +3 -5
- package/src/pipeline/pipeline.ts +24 -12
- package/src/space/auth.ts +3 -3
- package/src/space/data-pipeline.ts +35 -29
- package/src/space/replication.browser.test.ts +2 -2
- package/src/space/space-protocol.ts +4 -4
- package/src/space/space.test.ts +46 -5
- package/src/space/space.ts +8 -17
- package/src/testing/util.ts +1 -1
- package/src/tests/database.test.ts +1 -1
- package/dist/lib/browser/chunk-VTZ6AASA.mjs.map +0 -7
|
@@ -11,8 +11,11 @@ export declare class DataServiceHost {
|
|
|
11
11
|
private readonly _itemManager;
|
|
12
12
|
private readonly _itemDemuxer;
|
|
13
13
|
private readonly _writeStream?;
|
|
14
|
+
private readonly _ctx;
|
|
14
15
|
private readonly _clientTagMap;
|
|
15
16
|
constructor(_itemManager: ItemManager, _itemDemuxer: ItemDemuxer, _writeStream?: FeedWriter<DataMessage> | undefined);
|
|
17
|
+
open(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
16
19
|
/**
|
|
17
20
|
* Real-time subscription to data objects in a space.
|
|
18
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service-host.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/data-service-host.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"data-service-host.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/data-service-host.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAuB,WAAW,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGnG;;;GAGG;AAEH,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAThC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;gBAGiB,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,WAAW,EACzB,YAAY,CAAC,qCAAyB;IAGnD,IAAI;IAEJ,KAAK;IAIX;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;IA2CxB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAqB7D"}
|
|
@@ -5,8 +5,8 @@ import { DataServiceHost } from './data-service-host';
|
|
|
5
5
|
export declare class DataServiceSubscriptions {
|
|
6
6
|
private readonly _spaces;
|
|
7
7
|
clear(): void;
|
|
8
|
-
registerSpace(spaceKey: PublicKey, host: DataServiceHost): void
|
|
9
|
-
unregisterSpace(spaceKey: PublicKey): void
|
|
8
|
+
registerSpace(spaceKey: PublicKey, host: DataServiceHost): Promise<void>;
|
|
9
|
+
unregisterSpace(spaceKey: PublicKey): Promise<void>;
|
|
10
10
|
getDataService(spaceKey: PublicKey): DataServiceHost | undefined;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/data-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACb,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8D;IAEtF,KAAK;
|
|
1
|
+
{"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/data-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACb,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8D;IAEtF,KAAK;IAIC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe;IAOxD,eAAe,CAAC,QAAQ,EAAE,SAAS;IAOzC,cAAc,CAAC,QAAQ,EAAE,SAAS;CAGnC;AAED;;GAEG;AAEH,qBAAa,eAAgB,YAAW,WAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,wBAAwB;IAErE,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;IAOvD,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAOvD"}
|
|
@@ -2,6 +2,7 @@ import { Context } from '@dxos/context';
|
|
|
2
2
|
import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
|
|
3
3
|
import { BlobStore, BlobSync } from '@dxos/teleport-extension-object-sync';
|
|
4
4
|
import { SnapshotStore } from './snapshot-store';
|
|
5
|
+
declare const SpaceSnapshot: import("@dxos/codec-protobuf").ProtoCodec<SpaceSnapshot>;
|
|
5
6
|
/**
|
|
6
7
|
* Snapshot manager for a specific space.
|
|
7
8
|
*/
|
|
@@ -14,4 +15,5 @@ export declare class SnapshotManager {
|
|
|
14
15
|
load(ctx: Context, id: string): Promise<SpaceSnapshot>;
|
|
15
16
|
store(snapshot: SpaceSnapshot): Promise<string>;
|
|
16
17
|
}
|
|
18
|
+
export {};
|
|
17
19
|
//# sourceMappingURL=snapshot-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-manager.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/snapshot-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAqB,MAAM,eAAe,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,QAAQ;YAIxB,QAAQ;IAMhB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBtD,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot-manager.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/snapshot-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAqB,MAAM,eAAe,CAAC;AAK3D,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,QAAA,MAAM,aAAa,0DAA6D,CAAC;AAEjF;;GAEG;AACH,qBACa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,QAAQ;YAIxB,QAAQ;IAMhB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBtD,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAKtD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StoredSnapshotInfo } from '@dxos/protocols/proto/dxos/devtools/host';
|
|
2
2
|
import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
|
|
3
3
|
import { Directory } from '@dxos/random-access-storage';
|
|
4
|
+
declare const SpaceSnapshot: import("@dxos/codec-protobuf").ProtoCodec<SpaceSnapshot>;
|
|
4
5
|
/**
|
|
5
6
|
* @deprecated
|
|
6
7
|
*/
|
|
@@ -11,4 +12,5 @@ export declare class SnapshotStore {
|
|
|
11
12
|
loadSnapshot(key: string): Promise<SpaceSnapshot | undefined>;
|
|
12
13
|
listSnapshots(): Promise<StoredSnapshotInfo[]>;
|
|
13
14
|
}
|
|
15
|
+
export {};
|
|
14
16
|
//# sourceMappingURL=snapshot-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/snapshot-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;GAEG;AACH,qBAAa,aAAa;IAGtB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAGlC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAe7D,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAarD"}
|
|
1
|
+
{"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../../src/dbhost/snapshot-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,QAAA,MAAM,aAAa,0DAA6D,CAAC;AACjF;;GAEG;AACH,qBAAa,aAAa;IAGtB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAGlC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAe7D,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAarD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Event } from '@dxos/async';
|
|
2
2
|
import { PublicKey } from '@dxos/keys';
|
|
3
|
+
import { SpaceState } from '@dxos/protocols/proto/dxos/client/services';
|
|
3
4
|
import { EchoMetadata, SpaceMetadata, IdentityRecord, SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
|
|
4
5
|
import { Directory } from '@dxos/random-access-storage';
|
|
5
6
|
import { Timeframe } from '@dxos/timeframe';
|
|
@@ -7,6 +8,7 @@ export interface AddSpaceOptions {
|
|
|
7
8
|
key: PublicKey;
|
|
8
9
|
genesisFeed: PublicKey;
|
|
9
10
|
}
|
|
11
|
+
declare const EchoMetadata: import("@dxos/codec-protobuf").ProtoCodec<EchoMetadata>;
|
|
10
12
|
export declare class MetadataStore {
|
|
11
13
|
private readonly _directory;
|
|
12
14
|
private _metadata;
|
|
@@ -36,5 +38,7 @@ export declare class MetadataStore {
|
|
|
36
38
|
setSpaceControlLatestTimeframe(spaceKey: PublicKey, timeframe: Timeframe): Promise<void>;
|
|
37
39
|
setCache(spaceKey: PublicKey, cache: SpaceCache): Promise<void>;
|
|
38
40
|
setWritableFeedKeys(spaceKey: PublicKey, controlFeedKey: PublicKey, dataFeedKey: PublicKey): Promise<void>;
|
|
41
|
+
setSpaceState(spaceKey: PublicKey, state: SpaceState): Promise<void>;
|
|
39
42
|
}
|
|
43
|
+
export {};
|
|
40
44
|
//# sourceMappingURL=metadata-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AASD,qBAAa,aAAa;IAMtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,SAAS,CAAqC;IACtD,SAAgB,MAAM,sBAA6B;gBAIhC,UAAU,EAAE,SAAS;IAGxC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AASD,QAAA,MAAM,YAAY,yDAA4D,CAAC;AAE/E,qBAAa,aAAa;IAMtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,SAAS,CAAqC;IACtD,SAAgB,MAAM,sBAA6B;gBAIhC,UAAU,EAAE,SAAS;IAGxC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;IAED;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAsCb,KAAK;IA8BnB,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa;IAW7C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAIzC,iBAAiB,CAAC,MAAM,EAAE,cAAc;IAOxC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAU9B,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKrE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAK/C,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IAO1F,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;CAI3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-selector.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/message-selector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message-selector.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/message-selector.ts"],"names":[],"mappings":"AAMA,OAAO,EAAa,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,mBAAoB,cAAc,KAAG,kBAAkB,WAAW,CAiBnG,CAAC"}
|
|
@@ -30,7 +30,6 @@ export declare class PipelineState {
|
|
|
30
30
|
* Target timeframe we are waiting to reach.
|
|
31
31
|
*/
|
|
32
32
|
private _targetTimeframe;
|
|
33
|
-
private _reachedTargetPromise;
|
|
34
33
|
constructor(_feeds: ComplexMap<PublicKey, FeedWrapper<FeedMessage>>, _timeframeClock: TimeframeClock);
|
|
35
34
|
/**
|
|
36
35
|
* Latest theoretical timeframe based on the last mutation in each feed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAgC,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAmB,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAyC,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1F,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export type DataPipelineParams = {
|
|
|
29
29
|
* Consumes the pipeline and updates the database.
|
|
30
30
|
* Reacts to new epochs to restart the pipeline.
|
|
31
31
|
*/
|
|
32
|
-
export declare class DataPipeline {
|
|
32
|
+
export declare class DataPipeline implements CredentialProcessor {
|
|
33
33
|
private readonly _params;
|
|
34
34
|
private _ctx;
|
|
35
35
|
private _pipeline?;
|
|
@@ -50,13 +50,13 @@ export declare class DataPipeline {
|
|
|
50
50
|
*/
|
|
51
51
|
appliedEpoch?: SpecificCredential<Epoch>;
|
|
52
52
|
private _lastProcessedEpoch;
|
|
53
|
-
onNewEpoch: Event<Credential>;
|
|
54
53
|
private _epochCtx?;
|
|
54
|
+
onNewEpoch: Event<Credential>;
|
|
55
55
|
get isOpen(): boolean;
|
|
56
56
|
get pipeline(): Pipeline | undefined;
|
|
57
57
|
get pipelineState(): import("../pipeline/pipeline").PipelineState | undefined;
|
|
58
58
|
setTargetTimeframe(timeframe: Timeframe): void;
|
|
59
|
-
|
|
59
|
+
processCredential(credential: Credential): Promise<void>;
|
|
60
60
|
open(): Promise<void>;
|
|
61
61
|
close(): Promise<void>;
|
|
62
62
|
private _consumePipeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/space/data-pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAA0C,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAA2B,WAAW,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvD;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG,SAAS,CAAC;IAC/D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAiBF;;;;GAIG;AACH,qBACa,
|
|
1
|
+
{"version":3,"file":"data-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/space/data-pipeline.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAA0C,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAA2B,WAAW,EAAE,MAAM,eAAe,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvD;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG,SAAS,CAAC;IAC/D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAiBF;;;;GAIG;AACH,qBACa,YAAa,YAAW,mBAAmB;IAW1C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAwB;IAEjD,OAAO,CAAC,+BAA+B,CAAmB;IAC1D,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,qBAAqB,CAAK;gBAEL,OAAO,EAAE,kBAAkB;IAEjD,WAAW,EAAG,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAEnC;;OAEG;IACI,YAAY,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAa;IAE5D;;OAEG;IACI,YAAY,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAa;IAE5D,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,SAAS,CAAC,CAAU;IAErB,UAAU,oBAA2B;IAE5C,IAAI,MAAM,YAET;IAED,IAAI,QAAQ,yBAEX;IAED,IAAI,aAAa,6DAEhB;IAED,kBAAkB,CAAC,SAAS,EAAE,SAAS;IAKjC,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAaxC,IAAI;IAsCJ,KAAK;YAiCG,gBAAgB;IA6C9B,OAAO,CAAC,eAAe;YAST,oBAAoB;YAMpB,UAAU;YAsBV,wBAAwB;YAiBxB,2BAA2B;YA6B3B,aAAa;IAoBrB,kBAAkB,CAAC,SAAS,EAAE,SAAS;IAMvC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAqB7B,sBAAsB;CAG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-protocol.d.ts","sourceRoot":"","sources":["../../../../src/space/space-protocol.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAEL,cAAc,EAEd,YAAY,EACZ,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAiB,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,YAA+D,CAAC;AACjG,eAAO,MAAM,kBAAkB,EAAE,YAAwE,CAAC;AAG1G,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,CAAC;IACnB,kBAAkB,EAAE,YAAY,CAAC;IACjC,uBAAuB,EAAE,YAAY,CAAC;CACvC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAE/B,SAAS,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA8B;IAE9D,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAGnC,OAAO,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"space-protocol.d.ts","sourceRoot":"","sources":["../../../../src/space/space-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAkC,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAgB,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AAElG,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;CAElB,CAAC;AAEF;;GAEG;AAEH,qBACa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAE3C,SAAgB,qBAAqB,sCAA6C;IAClF,SAAgB,WAAW,cAAe;IAC1C,SAAgB,QAAQ,EAAE,aAAa,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IAEnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAC,CAA2B;gBAEjC,MAAM,EAAE,WAAW;IAsE/B,IACI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAED,IAAI,cAAc,IAAI,SAAS,CAE9B;IAED,IAAI,cAAc,0BAEjB;IAED,IAAI,WAAW,0BAEd;IAED,IAAI,UAAU,2CAEb;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,gBAAgB,CAEtC;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAO7C,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC;IAO1C;;OAEG;IACH,eAAe,IAAI,QAAQ,EAAE;IAI7B;;OAEG;IAKG,IAAI;IAgBJ,KAAK;IAkBL,sBAAsB;CAK7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/echo-pipeline",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54-main.270ec56",
|
|
4
4
|
"description": "ECHO database.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -20,43 +20,42 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"crc-32": "^1.2.2",
|
|
23
|
-
"
|
|
24
|
-
"@dxos/async": "0.1.
|
|
25
|
-
"@dxos/codec-protobuf": "0.1.
|
|
26
|
-
"@dxos/context": "0.1.
|
|
27
|
-
"@dxos/credentials": "0.1.
|
|
28
|
-
"@dxos/crypto": "0.1.
|
|
29
|
-
"@dxos/debug": "0.1.
|
|
30
|
-
"@dxos/document-model": "0.1.
|
|
31
|
-
"@dxos/echo-db": "0.1.
|
|
32
|
-
"@dxos/errors": "0.1.
|
|
33
|
-
"@dxos/feed-store": "0.1.
|
|
34
|
-
"@dxos/hypercore": "0.1.
|
|
35
|
-
"@dxos/keyring": "0.1.
|
|
36
|
-
"@dxos/keys": "0.1.
|
|
37
|
-
"@dxos/log": "0.1.
|
|
38
|
-
"@dxos/messaging": "0.1.
|
|
39
|
-
"@dxos/model-factory": "0.1.
|
|
40
|
-
"@dxos/network-manager": "0.1.
|
|
41
|
-
"@dxos/node-std": "0.1.
|
|
42
|
-
"@dxos/protocols": "0.1.
|
|
43
|
-
"@dxos/random-access-storage": "0.1.
|
|
44
|
-
"@dxos/rpc": "0.1.
|
|
45
|
-
"@dxos/teleport": "0.1.
|
|
46
|
-
"@dxos/teleport-extension-gossip": "0.1.
|
|
47
|
-
"@dxos/teleport-extension-object-sync": "0.1.
|
|
48
|
-
"@dxos/teleport-extension-replicator": "0.1.
|
|
49
|
-
"@dxos/timeframe": "0.1.
|
|
50
|
-
"@dxos/typings": "0.1.
|
|
51
|
-
"@dxos/util": "0.1.
|
|
23
|
+
"tiny-invariant": "^1.3.1",
|
|
24
|
+
"@dxos/async": "0.1.54-main.270ec56",
|
|
25
|
+
"@dxos/codec-protobuf": "0.1.54-main.270ec56",
|
|
26
|
+
"@dxos/context": "0.1.54-main.270ec56",
|
|
27
|
+
"@dxos/credentials": "0.1.54-main.270ec56",
|
|
28
|
+
"@dxos/crypto": "0.1.54-main.270ec56",
|
|
29
|
+
"@dxos/debug": "0.1.54-main.270ec56",
|
|
30
|
+
"@dxos/document-model": "0.1.54-main.270ec56",
|
|
31
|
+
"@dxos/echo-db": "0.1.54-main.270ec56",
|
|
32
|
+
"@dxos/errors": "0.1.54-main.270ec56",
|
|
33
|
+
"@dxos/feed-store": "0.1.54-main.270ec56",
|
|
34
|
+
"@dxos/hypercore": "0.1.54-main.270ec56",
|
|
35
|
+
"@dxos/keyring": "0.1.54-main.270ec56",
|
|
36
|
+
"@dxos/keys": "0.1.54-main.270ec56",
|
|
37
|
+
"@dxos/log": "0.1.54-main.270ec56",
|
|
38
|
+
"@dxos/messaging": "0.1.54-main.270ec56",
|
|
39
|
+
"@dxos/model-factory": "0.1.54-main.270ec56",
|
|
40
|
+
"@dxos/network-manager": "0.1.54-main.270ec56",
|
|
41
|
+
"@dxos/node-std": "0.1.54-main.270ec56",
|
|
42
|
+
"@dxos/protocols": "0.1.54-main.270ec56",
|
|
43
|
+
"@dxos/random-access-storage": "0.1.54-main.270ec56",
|
|
44
|
+
"@dxos/rpc": "0.1.54-main.270ec56",
|
|
45
|
+
"@dxos/teleport": "0.1.54-main.270ec56",
|
|
46
|
+
"@dxos/teleport-extension-gossip": "0.1.54-main.270ec56",
|
|
47
|
+
"@dxos/teleport-extension-object-sync": "0.1.54-main.270ec56",
|
|
48
|
+
"@dxos/teleport-extension-replicator": "0.1.54-main.270ec56",
|
|
49
|
+
"@dxos/timeframe": "0.1.54-main.270ec56",
|
|
50
|
+
"@dxos/typings": "0.1.54-main.270ec56",
|
|
51
|
+
"@dxos/util": "0.1.54-main.270ec56"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@types/debug": "^4.1.7",
|
|
55
54
|
"fast-check": "~3.3.0",
|
|
56
55
|
"hypercore-protocol": "^8.0.7",
|
|
57
56
|
"source-map-support": "^0.5.12",
|
|
58
57
|
"wait-for-expect": "^3.0.2",
|
|
59
|
-
"@dxos/text-model": "0.1.
|
|
58
|
+
"@dxos/text-model": "0.1.54-main.270ec56"
|
|
60
59
|
},
|
|
61
60
|
"publishConfig": {
|
|
62
61
|
"access": "public"
|
package/src/common/feeds.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import invariant from 'tiny-invariant';
|
|
6
6
|
|
|
7
7
|
import { FeedWriter } from '@dxos/feed-store';
|
|
8
8
|
import { MaybePromise } from '@dxos/util';
|
|
@@ -14,8 +14,8 @@ export const createMappedFeedWriter = <Source extends {}, Target extends {}>(
|
|
|
14
14
|
mapper: (arg: Source) => MaybePromise<Target>,
|
|
15
15
|
writer: FeedWriter<Target>,
|
|
16
16
|
): FeedWriter<Source> => {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
invariant(mapper);
|
|
18
|
+
invariant(writer);
|
|
19
19
|
|
|
20
20
|
return {
|
|
21
21
|
write: async (data: Source, options) => await writer.write(await mapper(data), options),
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import invariant from 'tiny-invariant';
|
|
6
6
|
|
|
7
7
|
import { Stream } from '@dxos/codec-protobuf';
|
|
8
|
+
import { Context } from '@dxos/context';
|
|
8
9
|
import { tagMutationsInBatch, ItemDemuxer, ItemManager, setMetadataOnObject } from '@dxos/echo-db';
|
|
9
10
|
import { FeedWriter } from '@dxos/feed-store';
|
|
10
11
|
import { PublicKey } from '@dxos/keys';
|
|
@@ -20,6 +21,8 @@ import { ComplexMap } from '@dxos/util';
|
|
|
20
21
|
*/
|
|
21
22
|
// TODO(burdon): Move to client-services.
|
|
22
23
|
export class DataServiceHost {
|
|
24
|
+
private readonly _ctx = new Context();
|
|
25
|
+
|
|
23
26
|
private readonly _clientTagMap = new ComplexMap<[feedKey: PublicKey, seq: number], string>(
|
|
24
27
|
([feedKey, seq]) => `${feedKey.toHex()}:${seq}`,
|
|
25
28
|
);
|
|
@@ -30,11 +33,20 @@ export class DataServiceHost {
|
|
|
30
33
|
private readonly _writeStream?: FeedWriter<DataMessage>,
|
|
31
34
|
) {}
|
|
32
35
|
|
|
36
|
+
async open() {}
|
|
37
|
+
|
|
38
|
+
async close() {
|
|
39
|
+
await this._ctx.dispose();
|
|
40
|
+
}
|
|
41
|
+
|
|
33
42
|
/**
|
|
34
43
|
* Real-time subscription to data objects in a space.
|
|
35
44
|
*/
|
|
36
45
|
subscribe(): Stream<EchoEvent> {
|
|
37
|
-
return new Stream(({ next, ctx }) => {
|
|
46
|
+
return new Stream(({ next, close, ctx }) => {
|
|
47
|
+
// This looks ridiculous..
|
|
48
|
+
ctx.onDispose(this._ctx.onDispose(close));
|
|
49
|
+
|
|
38
50
|
// send current state
|
|
39
51
|
const objects = Array.from(this._itemManager.entities.values()).map((entity) => entity.createSnapshot());
|
|
40
52
|
next({
|
|
@@ -47,7 +59,7 @@ export class DataServiceHost {
|
|
|
47
59
|
|
|
48
60
|
this._itemDemuxer.mutation.on(ctx, (message) => {
|
|
49
61
|
const { batch, meta } = message;
|
|
50
|
-
|
|
62
|
+
invariant(!(meta as any).clientTag, 'Unexpected client tag in mutation message');
|
|
51
63
|
log('message', { batch, meta });
|
|
52
64
|
|
|
53
65
|
const clientTag = this._clientTagMap.get([message.meta.feedKey, message.meta.seq]);
|
|
@@ -74,7 +86,8 @@ export class DataServiceHost {
|
|
|
74
86
|
}
|
|
75
87
|
|
|
76
88
|
async write(request: WriteRequest): Promise<MutationReceipt> {
|
|
77
|
-
|
|
89
|
+
invariant(!this._ctx.disposed, 'Cannot write to closed DataServiceHost');
|
|
90
|
+
invariant(this._writeStream, 'Cannot write mutations in readonly mode');
|
|
78
91
|
|
|
79
92
|
log('write', { clientTag: request.clientTag, objectCount: request.batch.objects?.length ?? 0 });
|
|
80
93
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import invariant from 'tiny-invariant';
|
|
6
6
|
|
|
7
7
|
import { Stream } from '@dxos/codec-protobuf';
|
|
8
8
|
import { raise } from '@dxos/debug';
|
|
@@ -27,13 +27,17 @@ export class DataServiceSubscriptions {
|
|
|
27
27
|
this._spaces.clear();
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
registerSpace(spaceKey: PublicKey, host: DataServiceHost) {
|
|
30
|
+
async registerSpace(spaceKey: PublicKey, host: DataServiceHost) {
|
|
31
31
|
log('Registering space', { spaceKey });
|
|
32
|
+
invariant(!this._spaces.has(spaceKey));
|
|
33
|
+
await host.open();
|
|
32
34
|
this._spaces.set(spaceKey, host);
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
unregisterSpace(spaceKey: PublicKey) {
|
|
37
|
+
async unregisterSpace(spaceKey: PublicKey) {
|
|
36
38
|
log('Unregistering space', { spaceKey });
|
|
39
|
+
const host = this._spaces.get(spaceKey);
|
|
40
|
+
await host?.close();
|
|
37
41
|
this._spaces.delete(spaceKey);
|
|
38
42
|
}
|
|
39
43
|
|
|
@@ -50,15 +54,15 @@ export class DataServiceImpl implements DataService {
|
|
|
50
54
|
constructor(private readonly _subscriptions: DataServiceSubscriptions) {}
|
|
51
55
|
|
|
52
56
|
subscribe(request: SubscribeRequest): Stream<EchoEvent> {
|
|
53
|
-
|
|
57
|
+
invariant(request.spaceKey);
|
|
54
58
|
const host =
|
|
55
59
|
this._subscriptions.getDataService(request.spaceKey) ?? raise(new Error(`space not found: ${request.spaceKey}`));
|
|
56
60
|
return host.subscribe();
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
write(request: WriteRequest): Promise<MutationReceipt> {
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
invariant(request.spaceKey);
|
|
65
|
+
invariant(request.batch);
|
|
62
66
|
const host =
|
|
63
67
|
this._subscriptions.getDataService(request.spaceKey) ?? raise(new Error(`space not found: ${request.spaceKey}`));
|
|
64
68
|
return host.write(request);
|
|
@@ -13,6 +13,8 @@ import { BlobStore, BlobSync } from '@dxos/teleport-extension-object-sync';
|
|
|
13
13
|
|
|
14
14
|
import { SnapshotStore } from './snapshot-store';
|
|
15
15
|
|
|
16
|
+
const SpaceSnapshot = schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot');
|
|
17
|
+
|
|
16
18
|
/**
|
|
17
19
|
* Snapshot manager for a specific space.
|
|
18
20
|
*/
|
|
@@ -28,7 +30,7 @@ export class SnapshotManager {
|
|
|
28
30
|
|
|
29
31
|
private async _getBlob(blobId: Uint8Array): Promise<SpaceSnapshot> {
|
|
30
32
|
const blob = await this._blobStore.get(blobId);
|
|
31
|
-
return
|
|
33
|
+
return SpaceSnapshot.decode(blob);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
@timed(10_000)
|
|
@@ -51,9 +53,7 @@ export class SnapshotManager {
|
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
async store(snapshot: SpaceSnapshot): Promise<string> {
|
|
54
|
-
const { id } = await this._blobStore.set(
|
|
55
|
-
schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').encode(snapshot),
|
|
56
|
-
);
|
|
56
|
+
const { id } = await this._blobStore.set(SpaceSnapshot.encode(snapshot));
|
|
57
57
|
await this._blobSync.notifyBlobAdded(id);
|
|
58
58
|
return PublicKey.from(id).toHex();
|
|
59
59
|
}
|
|
@@ -8,6 +8,7 @@ import { StoredSnapshotInfo } from '@dxos/protocols/proto/dxos/devtools/host';
|
|
|
8
8
|
import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
|
|
9
9
|
import { Directory } from '@dxos/random-access-storage';
|
|
10
10
|
|
|
11
|
+
const SpaceSnapshot = schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot');
|
|
11
12
|
/**
|
|
12
13
|
* @deprecated
|
|
13
14
|
*/
|
|
@@ -18,7 +19,7 @@ export class SnapshotStore {
|
|
|
18
19
|
) { }
|
|
19
20
|
|
|
20
21
|
async saveSnapshot(snapshot: SpaceSnapshot): Promise<string> {
|
|
21
|
-
const encoded =
|
|
22
|
+
const encoded = SpaceSnapshot.encode(snapshot);
|
|
22
23
|
const key = await subtleCrypto.digest('SHA-256', encoded);
|
|
23
24
|
const keyString = Buffer.from(key).toString('hex');
|
|
24
25
|
|
|
@@ -41,7 +42,7 @@ export class SnapshotStore {
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
const buffer = await file.read(0, size);
|
|
44
|
-
return
|
|
45
|
+
return SpaceSnapshot.decode(buffer);
|
|
45
46
|
} finally {
|
|
46
47
|
await file.close();
|
|
47
48
|
}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import CRC32 from 'crc-32';
|
|
6
|
-
import
|
|
6
|
+
import invariant from 'tiny-invariant';
|
|
7
7
|
|
|
8
8
|
import { synchronized, Event } from '@dxos/async';
|
|
9
9
|
import { DataCorruptionError } from '@dxos/errors';
|
|
10
10
|
import { PublicKey } from '@dxos/keys';
|
|
11
11
|
import { log } from '@dxos/log';
|
|
12
12
|
import { STORAGE_VERSION, schema } from '@dxos/protocols';
|
|
13
|
+
import { SpaceState } from '@dxos/protocols/proto/dxos/client/services';
|
|
13
14
|
import { EchoMetadata, SpaceMetadata, IdentityRecord, SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
|
|
14
15
|
import { Directory } from '@dxos/random-access-storage';
|
|
15
16
|
import { Timeframe } from '@dxos/timeframe';
|
|
@@ -27,6 +28,8 @@ const emptyEchoMetadata = (): EchoMetadata => ({
|
|
|
27
28
|
updated: new Date(),
|
|
28
29
|
});
|
|
29
30
|
|
|
31
|
+
const EchoMetadata = schema.getCodecForType('dxos.echo.metadata.EchoMetadata');
|
|
32
|
+
|
|
30
33
|
export class MetadataStore {
|
|
31
34
|
private _metadata: EchoMetadata = emptyEchoMetadata();
|
|
32
35
|
public readonly update = new Event<EchoMetadata>();
|
|
@@ -79,7 +82,12 @@ export class MetadataStore {
|
|
|
79
82
|
throw new DataCorruptionError('Metadata checksum is invalid.');
|
|
80
83
|
}
|
|
81
84
|
|
|
82
|
-
this._metadata =
|
|
85
|
+
this._metadata = EchoMetadata.decode(data);
|
|
86
|
+
|
|
87
|
+
// post-processing
|
|
88
|
+
this._metadata.spaces?.forEach((space) => {
|
|
89
|
+
space.state ??= SpaceState.ACTIVE;
|
|
90
|
+
});
|
|
83
91
|
} catch (err: any) {
|
|
84
92
|
log.error('failed to load metadata', { err });
|
|
85
93
|
this._metadata = emptyEchoMetadata();
|
|
@@ -101,7 +109,7 @@ export class MetadataStore {
|
|
|
101
109
|
const file = this._directory.getOrCreateFile('EchoMetadata');
|
|
102
110
|
|
|
103
111
|
try {
|
|
104
|
-
const encoded = arrayToBuffer(
|
|
112
|
+
const encoded = arrayToBuffer(EchoMetadata.encode(data));
|
|
105
113
|
const checksum = CRC32.buf(encoded);
|
|
106
114
|
|
|
107
115
|
const result = Buffer.alloc(8 + encoded.length);
|
|
@@ -126,7 +134,7 @@ export class MetadataStore {
|
|
|
126
134
|
}
|
|
127
135
|
|
|
128
136
|
const space = this.spaces.find((space) => space.key === spaceKey);
|
|
129
|
-
|
|
137
|
+
invariant(space, 'Space not found');
|
|
130
138
|
return space;
|
|
131
139
|
}
|
|
132
140
|
|
|
@@ -144,14 +152,14 @@ export class MetadataStore {
|
|
|
144
152
|
}
|
|
145
153
|
|
|
146
154
|
async setIdentityRecord(record: IdentityRecord) {
|
|
147
|
-
|
|
155
|
+
invariant(!this._metadata.identity, 'Cannot overwrite existing identity in metadata');
|
|
148
156
|
|
|
149
157
|
this._metadata.identity = record;
|
|
150
158
|
await this._save();
|
|
151
159
|
}
|
|
152
160
|
|
|
153
161
|
async addSpace(record: SpaceMetadata) {
|
|
154
|
-
|
|
162
|
+
invariant(
|
|
155
163
|
!(this._metadata.spaces ?? []).find((space) => space.key === record.key),
|
|
156
164
|
'Cannot overwrite existing space in metadata',
|
|
157
165
|
);
|
|
@@ -181,6 +189,11 @@ export class MetadataStore {
|
|
|
181
189
|
space.dataFeedKey = dataFeedKey;
|
|
182
190
|
await this._save();
|
|
183
191
|
}
|
|
192
|
+
|
|
193
|
+
async setSpaceState(spaceKey: PublicKey, state: SpaceState) {
|
|
194
|
+
this._getSpace(spaceKey).state = state;
|
|
195
|
+
await this._save();
|
|
196
|
+
}
|
|
184
197
|
}
|
|
185
198
|
|
|
186
199
|
const fromBytesInt32 = (buf: Buffer) => buf.readInt32LE(0);
|
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import assert from 'node:assert';
|
|
5
|
+
import invariant from 'tiny-invariant';
|
|
7
6
|
|
|
8
7
|
import { FeedBlock, FeedBlockSelector } from '@dxos/feed-store';
|
|
8
|
+
import { log } from '@dxos/log';
|
|
9
9
|
import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
|
|
10
10
|
|
|
11
11
|
import { TimeframeClock } from './timeframe-clock';
|
|
12
12
|
|
|
13
|
-
const log = debug('dxos:echo-db:message-selector');
|
|
14
|
-
|
|
15
13
|
/**
|
|
16
14
|
* The MessageSelector makes sure that we read in a trusted order.
|
|
17
15
|
* The first message we wish to process is the SpaceGenesis, which will admit a Feed.
|
|
@@ -25,7 +23,7 @@ export const createMessageSelector = (timeframeClock: TimeframeClock): FeedBlock
|
|
|
25
23
|
const {
|
|
26
24
|
data: { timeframe },
|
|
27
25
|
} = messages[i];
|
|
28
|
-
|
|
26
|
+
invariant(timeframe);
|
|
29
27
|
|
|
30
28
|
if (!timeframeClock.hasGaps(timeframe)) {
|
|
31
29
|
return i;
|