@dxos/echo-pipeline 0.1.53-next.63b0547 → 0.1.53-next.e9dc2bc

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.
Files changed (41) hide show
  1. package/dist/lib/browser/{chunk-SCMKAWNW.mjs → chunk-OJGL5427.mjs} +101 -67
  2. package/dist/lib/browser/chunk-OJGL5427.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +2 -2
  6. package/dist/lib/browser/testing/index.mjs.map +2 -2
  7. package/dist/lib/node/index.cjs +102 -68
  8. package/dist/lib/node/index.cjs.map +3 -3
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/testing/index.cjs +108 -74
  11. package/dist/lib/node/testing/index.cjs.map +3 -3
  12. package/dist/types/src/dbhost/data-service-host.d.ts +3 -0
  13. package/dist/types/src/dbhost/data-service-host.d.ts.map +1 -1
  14. package/dist/types/src/dbhost/data-service.d.ts +2 -2
  15. package/dist/types/src/dbhost/data-service.d.ts.map +1 -1
  16. package/dist/types/src/dbhost/snapshot-manager.d.ts +2 -0
  17. package/dist/types/src/dbhost/snapshot-manager.d.ts.map +1 -1
  18. package/dist/types/src/dbhost/snapshot-store.d.ts +2 -0
  19. package/dist/types/src/dbhost/snapshot-store.d.ts.map +1 -1
  20. package/dist/types/src/metadata/metadata-store.d.ts +4 -0
  21. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  22. package/dist/types/src/pipeline/pipeline.d.ts +0 -1
  23. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  24. package/dist/types/src/space/data-pipeline.d.ts +3 -3
  25. package/dist/types/src/space/data-pipeline.d.ts.map +1 -1
  26. package/dist/types/src/space/space.d.ts +0 -1
  27. package/dist/types/src/space/space.d.ts.map +1 -1
  28. package/package.json +30 -30
  29. package/src/dbhost/data-service-host.ts +14 -1
  30. package/src/dbhost/data-service.ts +6 -2
  31. package/src/dbhost/snapshot-manager.ts +4 -4
  32. package/src/dbhost/snapshot-store.ts +3 -2
  33. package/src/metadata/metadata-store.ts +15 -2
  34. package/src/pipeline/pipeline.ts +13 -1
  35. package/src/space/data-pipeline.ts +25 -19
  36. package/src/space/replication.browser.test.ts +2 -2
  37. package/src/space/space.test.ts +46 -5
  38. package/src/space/space.ts +3 -12
  39. package/src/testing/util.ts +1 -1
  40. package/src/tests/database.test.ts +1 -1
  41. package/dist/lib/browser/chunk-SCMKAWNW.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;AAC9C,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;IAMxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAPhC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;gBAGiB,YAAY,EAAE,WAAW,EACzB,YAAY,EAAE,WAAW,EACzB,YAAY,CAAC,qCAAyB;IAGzD;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;IAwCxB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAoB7D"}
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;IAIL,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe;IAKxD,eAAe,CAAC,QAAQ,EAAE,SAAS;IAKnC,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"}
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;CAOtD"}
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;YAiCb,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;CAMjG"}
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"}
@@ -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":"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"}
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
- createCredentialProcessor(): CredentialProcessor;
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,YAAY;IAWX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAY;IAErC,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,CAAC;IAEhD;;OAEG;IACI,YAAY,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhD,OAAO,CAAC,mBAAmB,CAAM;IAC1B,UAAU,oBAA2B;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAU;IAE5B,IAAI,MAAM,YAET;IAED,IAAI,QAAQ,yBAEX;IAED,IAAI,aAAa,6DAEhB;IAED,kBAAkB,CAAC,SAAS,EAAE,SAAS;IAKvC,yBAAyB,IAAI,mBAAmB;IAiB1C,IAAI;IAsCJ,KAAK;YAwBG,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
+ {"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"}
@@ -41,7 +41,6 @@ export declare class Space {
41
41
  private readonly _controlPipeline;
42
42
  private readonly _dataPipeline;
43
43
  private readonly _snapshotManager;
44
- private _dataPipelineCredentialConsumer?;
45
44
  private _isOpen;
46
45
  private _controlFeed?;
47
46
  private _dataFeed?;
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"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"}
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.53-next.63b0547",
3
+ "version": "0.1.53-next.e9dc2bc",
4
4
  "description": "ECHO database.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -21,41 +21,41 @@
21
21
  "dependencies": {
22
22
  "crc-32": "^1.2.2",
23
23
  "tiny-invariant": "^1.3.1",
24
- "@dxos/async": "0.1.53-next.63b0547",
25
- "@dxos/codec-protobuf": "0.1.53-next.63b0547",
26
- "@dxos/context": "0.1.53-next.63b0547",
27
- "@dxos/credentials": "0.1.53-next.63b0547",
28
- "@dxos/crypto": "0.1.53-next.63b0547",
29
- "@dxos/debug": "0.1.53-next.63b0547",
30
- "@dxos/document-model": "0.1.53-next.63b0547",
31
- "@dxos/echo-db": "0.1.53-next.63b0547",
32
- "@dxos/errors": "0.1.53-next.63b0547",
33
- "@dxos/feed-store": "0.1.53-next.63b0547",
34
- "@dxos/hypercore": "0.1.53-next.63b0547",
35
- "@dxos/keyring": "0.1.53-next.63b0547",
36
- "@dxos/keys": "0.1.53-next.63b0547",
37
- "@dxos/log": "0.1.53-next.63b0547",
38
- "@dxos/messaging": "0.1.53-next.63b0547",
39
- "@dxos/model-factory": "0.1.53-next.63b0547",
40
- "@dxos/network-manager": "0.1.53-next.63b0547",
41
- "@dxos/node-std": "0.1.53-next.63b0547",
42
- "@dxos/protocols": "0.1.53-next.63b0547",
43
- "@dxos/random-access-storage": "0.1.53-next.63b0547",
44
- "@dxos/rpc": "0.1.53-next.63b0547",
45
- "@dxos/teleport": "0.1.53-next.63b0547",
46
- "@dxos/teleport-extension-gossip": "0.1.53-next.63b0547",
47
- "@dxos/teleport-extension-object-sync": "0.1.53-next.63b0547",
48
- "@dxos/teleport-extension-replicator": "0.1.53-next.63b0547",
49
- "@dxos/timeframe": "0.1.53-next.63b0547",
50
- "@dxos/typings": "0.1.53-next.63b0547",
51
- "@dxos/util": "0.1.53-next.63b0547"
24
+ "@dxos/async": "0.1.53-next.e9dc2bc",
25
+ "@dxos/codec-protobuf": "0.1.53-next.e9dc2bc",
26
+ "@dxos/context": "0.1.53-next.e9dc2bc",
27
+ "@dxos/credentials": "0.1.53-next.e9dc2bc",
28
+ "@dxos/crypto": "0.1.53-next.e9dc2bc",
29
+ "@dxos/debug": "0.1.53-next.e9dc2bc",
30
+ "@dxos/document-model": "0.1.53-next.e9dc2bc",
31
+ "@dxos/echo-db": "0.1.53-next.e9dc2bc",
32
+ "@dxos/errors": "0.1.53-next.e9dc2bc",
33
+ "@dxos/feed-store": "0.1.53-next.e9dc2bc",
34
+ "@dxos/hypercore": "0.1.53-next.e9dc2bc",
35
+ "@dxos/keyring": "0.1.53-next.e9dc2bc",
36
+ "@dxos/keys": "0.1.53-next.e9dc2bc",
37
+ "@dxos/log": "0.1.53-next.e9dc2bc",
38
+ "@dxos/messaging": "0.1.53-next.e9dc2bc",
39
+ "@dxos/model-factory": "0.1.53-next.e9dc2bc",
40
+ "@dxos/network-manager": "0.1.53-next.e9dc2bc",
41
+ "@dxos/node-std": "0.1.53-next.e9dc2bc",
42
+ "@dxos/protocols": "0.1.53-next.e9dc2bc",
43
+ "@dxos/random-access-storage": "0.1.53-next.e9dc2bc",
44
+ "@dxos/rpc": "0.1.53-next.e9dc2bc",
45
+ "@dxos/teleport": "0.1.53-next.e9dc2bc",
46
+ "@dxos/teleport-extension-gossip": "0.1.53-next.e9dc2bc",
47
+ "@dxos/teleport-extension-object-sync": "0.1.53-next.e9dc2bc",
48
+ "@dxos/teleport-extension-replicator": "0.1.53-next.e9dc2bc",
49
+ "@dxos/timeframe": "0.1.53-next.e9dc2bc",
50
+ "@dxos/typings": "0.1.53-next.e9dc2bc",
51
+ "@dxos/util": "0.1.53-next.e9dc2bc"
52
52
  },
53
53
  "devDependencies": {
54
54
  "fast-check": "~3.3.0",
55
55
  "hypercore-protocol": "^8.0.7",
56
56
  "source-map-support": "^0.5.12",
57
57
  "wait-for-expect": "^3.0.2",
58
- "@dxos/text-model": "0.1.53-next.63b0547"
58
+ "@dxos/text-model": "0.1.53-next.e9dc2bc"
59
59
  },
60
60
  "publishConfig": {
61
61
  "access": "public"
@@ -5,6 +5,7 @@
5
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({
@@ -74,6 +86,7 @@ export class DataServiceHost {
74
86
  }
75
87
 
76
88
  async write(request: WriteRequest): Promise<MutationReceipt> {
89
+ invariant(!this._ctx.disposed, 'Cannot write to closed DataServiceHost');
77
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 });
@@ -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
 
@@ -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 schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').decode(blob);
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 = schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').encode(snapshot);
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 schema.getCodecForType('dxos.echo.snapshot.SpaceSnapshot').decode(buffer);
45
+ return SpaceSnapshot.decode(buffer);
45
46
  } finally {
46
47
  await file.close();
47
48
  }
@@ -10,6 +10,7 @@ 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 = schema.getCodecForType('dxos.echo.metadata.EchoMetadata').decode(data);
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(schema.getCodecForType('dxos.echo.metadata.EchoMetadata').encode(data));
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);
@@ -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);
@@ -36,6 +36,11 @@ export type WaitUntilReachedTargetParams = {
36
36
  * External state accessor.
37
37
  */
38
38
  export class PipelineState {
39
+ /**
40
+ * @internal
41
+ */
42
+ _ctx = new Context();
43
+
39
44
  // TODO(dmaretskyi): Remove?.
40
45
  public readonly timeframeUpdate = this._timeframeClock.update;
41
46
 
@@ -51,7 +56,10 @@ export class PipelineState {
51
56
  */
52
57
  private _targetTimeframe: Timeframe | undefined;
53
58
 
54
- private _reachedTargetPromise: Promise<void> | undefined;
59
+ /**
60
+ * @internal
61
+ */
62
+ _reachedTargetPromise: Promise<void> | undefined;
55
63
 
56
64
  // prettier-ignore
57
65
  constructor(
@@ -133,6 +141,7 @@ export class PipelineState {
133
141
  if (timeout) {
134
142
  return Promise.race([
135
143
  rejectOnDispose(ctx),
144
+ rejectOnDispose(this._ctx),
136
145
  this._reachedTargetPromise.then(() => {
137
146
  done = true;
138
147
  }),
@@ -274,6 +283,9 @@ export class Pipeline implements PipelineAccessor {
274
283
  this._isStopping = true;
275
284
  await this._feedSetIterator?.close();
276
285
  await this._processingTrigger.wait(); // Wait for the in-flight message to be processed.
286
+ await this._state._ctx.dispose();
287
+ this._state._ctx = new Context();
288
+ this._state._reachedTargetPromise = undefined;
277
289
  log('stopped');
278
290
  this._isStarted = false;
279
291
  }
@@ -65,10 +65,10 @@ const TIMEFRAME_SAVE_DEBOUNCE_INTERVAL = 500;
65
65
  * Reacts to new epochs to restart the pipeline.
66
66
  */
67
67
  @trackLeaks('open', 'close')
68
- export class DataPipeline {
68
+ export class DataPipeline implements CredentialProcessor {
69
69
  private _ctx = new Context();
70
- private _pipeline?: Pipeline;
71
- private _targetTimeframe?: Timeframe;
70
+ private _pipeline?: Pipeline = undefined;
71
+ private _targetTimeframe?: Timeframe = undefined;
72
72
 
73
73
  private _lastAutomaticSnapshotTimeframe = new Timeframe();
74
74
  private _isOpen = false;
@@ -84,17 +84,18 @@ export class DataPipeline {
84
84
  /**
85
85
  * Current epoch. Might be still processing.
86
86
  */
87
- public currentEpoch?: SpecificCredential<Epoch>;
87
+ public currentEpoch?: SpecificCredential<Epoch> = undefined;
88
88
 
89
89
  /**
90
90
  * Epoch currently applied.
91
91
  */
92
- public appliedEpoch?: SpecificCredential<Epoch>;
92
+ public appliedEpoch?: SpecificCredential<Epoch> = undefined;
93
93
 
94
94
  private _lastProcessedEpoch = -1;
95
- public onNewEpoch = new Event<Credential>();
96
95
  private _epochCtx?: Context;
97
96
 
97
+ public onNewEpoch = new Event<Credential>();
98
+
98
99
  get isOpen() {
99
100
  return this._isOpen;
100
101
  }
@@ -112,20 +113,16 @@ export class DataPipeline {
112
113
  this._pipeline?.state.setTargetTimeframe(timeframe);
113
114
  }
114
115
 
115
- createCredentialProcessor(): CredentialProcessor {
116
- return {
117
- process: async (credential) => {
118
- if (!checkCredentialType(credential, 'dxos.halo.credentials.Epoch')) {
119
- return;
120
- }
116
+ async processCredential(credential: Credential) {
117
+ if (!checkCredentialType(credential, 'dxos.halo.credentials.Epoch')) {
118
+ return;
119
+ }
121
120
 
122
- this.currentEpoch = credential;
123
- if (this._isOpen) {
124
- // process epoch
125
- await this._processEpochInSeparateTask(credential);
126
- }
127
- },
128
- };
121
+ this.currentEpoch = credential;
122
+ if (this._isOpen) {
123
+ // process epoch
124
+ await this._processEpochInSeparateTask(credential);
125
+ }
129
126
  }
130
127
 
131
128
  @synchronized
@@ -189,6 +186,15 @@ export class DataPipeline {
189
186
 
190
187
  await this.databaseHost?.close();
191
188
  await this.itemManager?.destroy();
189
+
190
+ this._ctx = new Context();
191
+ this._pipeline = undefined;
192
+ this._targetTimeframe = undefined;
193
+ this._lastAutomaticSnapshotTimeframe = new Timeframe();
194
+ this.currentEpoch = undefined;
195
+ this.appliedEpoch = undefined;
196
+ this._lastProcessedEpoch = -1;
197
+ this._epochCtx = undefined;
192
198
  }
193
199
 
194
200
  private async _consumePipeline() {
@@ -49,8 +49,8 @@ describe('replication', () => {
49
49
  });
50
50
  const feed2 = await feedStore2.openFeed(feed1.key);
51
51
 
52
- const stream1 = feed1.replicate(true, { live: true });
53
- const stream2 = feed2.replicate(false, { live: true });
52
+ const stream1 = feed1.replicate(true, { live: true, noise: false, encrypted: false });
53
+ const stream2 = feed2.replicate(false, { live: true, noise: false, encrypted: false });
54
54
  stream1.pipe(stream2).pipe(stream1);
55
55
 
56
56
  await feed1.append({