@dxos/client-services 0.1.31 → 0.1.32-next.77d513e

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 (52) hide show
  1. package/dist/lib/browser/{chunk-DFO3FW2W.mjs → chunk-E3FD43YN.mjs} +423 -209
  2. package/dist/lib/browser/chunk-E3FD43YN.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/packlets/testing/index.mjs +3 -3
  6. package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
  7. package/dist/lib/node/index.cjs +424 -210
  8. package/dist/lib/node/index.cjs.map +3 -3
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/packlets/testing/index.cjs +432 -218
  11. package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
  12. package/dist/types/src/packlets/identity/identity-manager.d.ts +6 -0
  13. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  14. package/dist/types/src/packlets/invitations/device-invitations-handler.d.ts.map +1 -1
  15. package/dist/types/src/packlets/invitations/space-invitations-handler.d.ts.map +1 -1
  16. package/dist/types/src/packlets/services/service-host.d.ts +1 -0
  17. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  18. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +19 -1
  19. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  20. package/dist/types/src/packlets/spaces/data-space.d.ts +24 -4
  21. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  22. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts +29 -1
  23. package/dist/types/src/packlets/spaces/notarization-plugin.d.ts.map +1 -1
  24. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  25. package/dist/types/src/packlets/testing/host-test-builder.d.ts +2 -2
  26. package/dist/types/src/packlets/testing/host-test-builder.d.ts.map +1 -1
  27. package/dist/types/src/packlets/vault/vault-resource-lock.d.ts +1 -0
  28. package/dist/types/src/packlets/vault/vault-resource-lock.d.ts.map +1 -1
  29. package/package.json +30 -30
  30. package/src/packlets/identity/identity-manager.ts +32 -17
  31. package/src/packlets/invitations/device-invitations-handler.ts +5 -3
  32. package/src/packlets/invitations/space-invitations-handler.test.ts +20 -3
  33. package/src/packlets/invitations/space-invitations-handler.ts +15 -8
  34. package/src/packlets/services/service-context.test.ts +6 -5
  35. package/src/packlets/services/service-host.ts +7 -2
  36. package/src/packlets/spaces/data-space-manager.test.ts +17 -2
  37. package/src/packlets/spaces/data-space-manager.ts +76 -30
  38. package/src/packlets/spaces/data-space.ts +90 -15
  39. package/src/packlets/spaces/notarization-plugin.test.ts +3 -1
  40. package/src/packlets/spaces/notarization-plugin.ts +64 -23
  41. package/src/packlets/spaces/spaces-service.test.ts +1 -1
  42. package/src/packlets/spaces/spaces-service.ts +28 -17
  43. package/src/packlets/testing/host-test-builder.ts +2 -2
  44. package/src/packlets/testing/test-builder.ts +2 -2
  45. package/src/packlets/tests/client-services.test.ts +24 -11
  46. package/src/packlets/tests/client.test.ts +3 -6
  47. package/src/packlets/tests/halo-profile.test.ts +5 -5
  48. package/src/packlets/tests/spaces-invitations.test.ts +4 -4
  49. package/src/packlets/tests/spaces.test.ts +20 -11
  50. package/src/packlets/tests/text.test.ts +6 -6
  51. package/src/packlets/vault/vault-resource-lock.ts +10 -1
  52. package/dist/lib/browser/chunk-DFO3FW2W.mjs.map +0 -7
@@ -4,6 +4,7 @@ import { FeedStore } from '@dxos/feed-store';
4
4
  import { Keyring } from '@dxos/keyring';
5
5
  import { PublicKey } from '@dxos/keys';
6
6
  import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
7
+ import { Timeframe } from '@dxos/timeframe';
7
8
  import { Identity } from './identity';
8
9
  export declare type JoinIdentityParams = {
9
10
  identityKey: PublicKey;
@@ -12,6 +13,11 @@ export declare type JoinIdentityParams = {
12
13
  haloGenesisFeedKey: PublicKey;
13
14
  controlFeedKey: PublicKey;
14
15
  dataFeedKey: PublicKey;
16
+ /**
17
+ * Latest known timeframe for the control pipeline.
18
+ * We will try to catch up to this timeframe before starting the data pipeline.
19
+ */
20
+ controlTimeframe?: Timeframe;
15
21
  };
16
22
  export declare type CreateIdentityOptions = {
17
23
  displayName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"identity-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAKnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,oBAAY,kBAAkB,GAAG;IAC/B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC;IAC9B,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,QAAQ,CAAC,WAAW,cAAe;IAEnC,OAAO,CAAC,SAAS,CAAC,CAAW;gBAKV,cAAc,EAAE,aAAa,EAC7B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAClC,aAAa,EAAE,YAAY;IAG9C,IAAI,QAAQ,yBAEX;IAEK,IAAI;IAaJ,KAAK;IAIL,cAAc,CAAC,EAAE,WAAW,EAAE,GAAE,qBAA0B;IAgEhE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,kBAAkB;YAyBjC,kBAAkB;YAiClB,eAAe;CAU9B"}
1
+ {"version":3,"file":"identity-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,oBAAY,kBAAkB,GAAG;IAC/B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,SAAS,CAAC;IACxB,kBAAkB,EAAE,SAAS,CAAC;IAC9B,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,SAAS,CAAC;IAEvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,QAAQ,CAAC,WAAW,cAAe;IAEnC,OAAO,CAAC,SAAS,CAAC,CAAW;gBAKV,cAAc,EAAE,aAAa,EAC7B,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAClC,aAAa,EAAE,YAAY;IAG9C,IAAI,QAAQ,yBAEX;IAEK,IAAI;IAaJ,KAAK;IAIL,cAAc,CAAC,EAAE,WAAW,EAAE,GAAE,qBAA0B;IA+DhE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,kBAAkB;YA0BjC,kBAAkB;YAwClB,eAAe;CAU9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/device-invitations-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAEhC,+BAA+B,EAE/B,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAiC,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAUxE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3D,aAAK,8BAA8B,GAAG;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,cAAc,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrE,CAAC;AAEF;;GAEG;AAEH,qBAAa,wBAAyB,SAAQ,0BAA0B;IAGpE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,8BAA8B;IAK1D;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,+BAA+B;IAmH9F;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gCAAgC;CAkHzG"}
1
+ {"version":3,"file":"device-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/device-invitations-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAEhC,+BAA+B,EAE/B,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAiC,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAUxE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3D,aAAK,8BAA8B,GAAG;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,cAAc,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrE,CAAC;AAEF;;GAEG;AAEH,qBAAa,wBAAyB,SAAQ,0BAA0B;IAGpE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,8BAA8B;IAK1D;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,+BAA+B;IAoH9F;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gCAAgC;CAmHzG"}
@@ -1 +1 @@
1
- {"version":3,"file":"space-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitations-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gCAAgC,EAEhC,+BAA+B,EAI/B,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAiC,cAAc,EAAiC,MAAM,uBAAuB,CAAC;AAErH,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAexE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIxD;;GAEG;AAEH,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,SAAS,CAAC;IAG9E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAHzB,cAAc,EAAE,cAAc,EACb,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,cAAc,EAC/B,QAAQ,EAAE,OAAO;IAKpC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,+BAA+B;IAwKjG;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gCAAgC;CA6IzG"}
1
+ {"version":3,"file":"space-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitations-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gCAAgC,EAEhC,+BAA+B,EAI/B,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAiC,cAAc,EAAiC,MAAM,uBAAuB,CAAC;AAErH,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAexE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIxD;;GAEG;AAEH,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,SAAS,CAAC;IAG9E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAHzB,cAAc,EAAE,cAAc,EACb,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,cAAc,EAC/B,QAAQ,EAAE,OAAO;IAKpC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,+BAA+B;IA4KjG;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gCAAgC;CAgJzG"}
@@ -30,6 +30,7 @@ export declare class ClientServicesHost {
30
30
  private readonly _modelFactory;
31
31
  private _networkManager?;
32
32
  private _storage?;
33
+ private _opening;
33
34
  private _open;
34
35
  constructor({ config, modelFactory, networkManager, storage, lockKey }?: ClientServicesHostParams);
35
36
  get isOpen(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,cAAc,EAA6B,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAatD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,oBAAY,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAM3B,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,YAA0C,EAE1C,cAAc,EACd,OAAO,EAEP,OAAO,EACR,GAAE,wBAA6B;IA2ChC,IAAI,MAAM,YAET;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,iBAAiB;IAkBlD,IAAI;IAiEJ,KAAK;CAaZ"}
1
+ {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,cAAc,EAA6B,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAatD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,oBAAY,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAM3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,YAA0C,EAE1C,cAAc,EACd,OAAO,EAEP,OAAO,EACR,GAAE,wBAA6B;IA6ChC,IAAI,MAAM,YAET;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,iBAAiB;IAkBlD,IAAI;IAmEJ,KAAK;CAaZ"}
@@ -1,15 +1,26 @@
1
1
  import { Event } from '@dxos/async';
2
- import { MetadataStore, SigningContext, SpaceManager, DataServiceSubscriptions, SnapshotStore } from '@dxos/echo-pipeline';
2
+ import { DataServiceSubscriptions, MetadataStore, SigningContext, SnapshotStore, SpaceManager } from '@dxos/echo-pipeline';
3
3
  import { FeedStore } from '@dxos/feed-store';
4
4
  import { Keyring } from '@dxos/keyring';
5
5
  import { PublicKey } from '@dxos/keys';
6
6
  import { ModelFactory } from '@dxos/model-factory';
7
7
  import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
8
+ import { Timeframe } from '@dxos/timeframe';
8
9
  import { ComplexMap } from '@dxos/util';
9
10
  import { DataSpace } from './data-space';
10
11
  export declare type AcceptSpaceOptions = {
11
12
  spaceKey: PublicKey;
12
13
  genesisFeedKey: PublicKey;
14
+ /**
15
+ * Latest known timeframe for the control pipeline.
16
+ * We will try to catch up to this timeframe before starting the data pipeline.
17
+ */
18
+ controlTimeframe?: Timeframe;
19
+ /**
20
+ * Latest known timeframe for the data pipeline.
21
+ * We will try to catch up to this timeframe before initializing the database.
22
+ */
23
+ dataTimeframe?: Timeframe;
13
24
  };
14
25
  export declare class DataSpaceManager {
15
26
  private readonly _spaceManager;
@@ -23,6 +34,7 @@ export declare class DataSpaceManager {
23
34
  private readonly _ctx;
24
35
  readonly updated: Event<void>;
25
36
  private readonly _spaces;
37
+ private _isOpen;
26
38
  constructor(_spaceManager: SpaceManager, _metadataStore: MetadataStore, _dataServiceSubscriptions: DataServiceSubscriptions, _keyring: Keyring, _signingContext: SigningContext, _modelFactory: ModelFactory, _feedStore: FeedStore<FeedMessage>, _snapshotStore: SnapshotStore);
27
39
  get spaces(): ComplexMap<PublicKey, DataSpace>;
28
40
  open(): Promise<void>;
@@ -32,6 +44,12 @@ export declare class DataSpaceManager {
32
44
  */
33
45
  createSpace(): Promise<DataSpace>;
34
46
  acceptSpace(opts: AcceptSpaceOptions): Promise<DataSpace>;
47
+ /**
48
+ * Wait until the space data pipeline is fully initialized.
49
+ * Used by invitation handler.
50
+ * TODO(dmaretskyi): Consider removing.
51
+ */
52
+ waitUntilSpaceReady(spaceKey: PublicKey): Promise<void>;
35
53
  private _constructSpace;
36
54
  }
37
55
  //# sourceMappingURL=data-space-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-space-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAA4B,MAAM,aAAa,CAAC;AAG9D,OAAO,EACL,aAAa,EACb,cAAc,EAGd,YAAY,EACZ,wBAAwB,EAExB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,oBAAY,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,qBACa,gBAAgB;IAQzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAdjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,SAAgB,OAAO,cAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;gBAG7D,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,yBAAyB,EAAE,wBAAwB,EACnD,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,cAAc,EAC/B,aAAa,EAAE,YAAY,EAC3B,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAClC,cAAc,EAAE,aAAa;IAIhD,IAAI,MAAM,qCAET;IAGK,IAAI;IAuBJ,KAAK;IAOX;;OAEG;IAEG,WAAW;IAiCX,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;YAoBjD,eAAe;CAqD9B"}
1
+ {"version":3,"file":"data-space-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAA4B,MAAM,aAAa,CAAC;AAI9D,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,cAAc,EAEd,aAAa,EAGb,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,oBAAY,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,qBACa,gBAAgB;IAUzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAhBjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,SAAgB,OAAO,cAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAEhF,OAAO,CAAC,OAAO,CAAS;gBAGL,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,yBAAyB,EAAE,wBAAwB,EACnD,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,cAAc,EAC/B,aAAa,EAAE,YAAY,EAC3B,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAClC,cAAc,EAAE,aAAa;IAIhD,IAAI,MAAM,qCAET;IAGK,IAAI;IAgBJ,KAAK;IASX;;OAEG;IAEG,WAAW;IA8BX,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAqB/D;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,SAAS;YAU/B,eAAe;CA6E9B"}
@@ -1,4 +1,6 @@
1
- import { DataPipelineControllerImpl, MetadataStore, Space, SigningContext, SnapshotManager } from '@dxos/echo-pipeline';
1
+ import { Event } from '@dxos/async';
2
+ import { SpaceState } from '@dxos/client';
3
+ import { MetadataStore, Space, SigningContext, SnapshotManager, DataPipeline } from '@dxos/echo-pipeline';
2
4
  import { FeedStore } from '@dxos/feed-store';
3
5
  import { Keyring } from '@dxos/keyring';
4
6
  import { PublicKey } from '@dxos/keys';
@@ -8,6 +10,16 @@ import { GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
8
10
  import { Gossip, Presence } from '@dxos/teleport-extension-gossip';
9
11
  import { TrustedKeySetAuthVerifier } from '../identity';
10
12
  import { NotarizationPlugin } from './notarization-plugin';
13
+ export declare type DataSpaceCallbacks = {
14
+ /**
15
+ * Called before transitioning to the ready state.
16
+ */
17
+ beforeReady?: () => Promise<void>;
18
+ /**
19
+ * Called after transitioning to the ready state.
20
+ */
21
+ afterReady?: () => Promise<void>;
22
+ };
11
23
  export declare type DataSpaceParams = {
12
24
  inner: Space;
13
25
  modelFactory: ModelFactory;
@@ -20,10 +32,11 @@ export declare type DataSpaceParams = {
20
32
  signingContext: SigningContext;
21
33
  memberKey: PublicKey;
22
34
  snapshotId?: string | undefined;
35
+ callbacks?: DataSpaceCallbacks;
23
36
  };
24
37
  export declare class DataSpace {
25
38
  private readonly _ctx;
26
- private readonly _dataPipelineController;
39
+ private readonly _dataPipeline;
27
40
  private readonly _inner;
28
41
  private readonly _gossip;
29
42
  private readonly _presence;
@@ -32,13 +45,16 @@ export declare class DataSpace {
32
45
  private readonly _metadataStore;
33
46
  private readonly _signingContext;
34
47
  private readonly _notarizationPluginConsumer;
48
+ private readonly _callbacks;
49
+ private _state;
35
50
  readonly authVerifier: TrustedKeySetAuthVerifier;
51
+ readonly stateUpdate: Event<void>;
36
52
  constructor(params: DataSpaceParams);
37
53
  get key(): PublicKey;
38
54
  get isOpen(): boolean;
55
+ get state(): SpaceState;
39
56
  get inner(): Space;
40
- get dataPipelineController(): DataPipelineControllerImpl;
41
- get stateUpdate(): import("@dxos/async").Event<void>;
57
+ get dataPipeline(): DataPipeline;
42
58
  get presence(): Presence;
43
59
  get notarizationPlugin(): NotarizationPlugin;
44
60
  open(): Promise<void>;
@@ -47,6 +63,10 @@ export declare class DataSpace {
47
63
  listen(channel: string, callback: (message: GossipMessage) => void): {
48
64
  unsubscribe: () => void;
49
65
  };
66
+ /**
67
+ * Initialize the data pipeline in a separate task.
68
+ */
69
+ initializeDataPipelineAsync(): void;
50
70
  initializeDataPipeline(): Promise<void>;
51
71
  private _createWritableFeeds;
52
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,KAAK,EACL,cAAc,EAEd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,oBAAY,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAGF,qBACa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA6B;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAyC;IAErF,SAAgB,YAAY,EAAE,yBAAyB,CAAC;gBAE5C,MAAM,EAAE,eAAe;IA2BnC,IAAI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAGD,IAAI,KAAK,UAER;IAED,IAAI,sBAAsB,IAAI,0BAA0B,CAEvD;IAED,IAAI,WAAW,sCAEd;IAED,IAAI,QAAQ,aAEX;IAED,IAAI,kBAAkB,uBAErB;IAEK,IAAI;IAMJ,KAAK;IAYL,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI/C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;;;IAI5D,sBAAsB;YAmBd,oBAAoB;CA4CnC"}
1
+ {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA4B,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EACL,aAAa,EACb,KAAK,EACL,cAAc,EAEd,eAAe,EACf,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,oBAAY,kBAAkB,GAAG;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,qBACa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAyC;IACrF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,OAAO,CAAC,MAAM,CAAqB;IAEnC,SAAgB,YAAY,EAAE,yBAAyB,CAAC;IACxD,SAAgB,WAAW,cAAe;gBAE9B,MAAM,EAAE,eAAe;IA8BnC,IAAI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAED,IAAI,KAAK,IAAI,UAAU,CAEtB;IAGD,IAAI,KAAK,UAER;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,QAAQ,aAEX;IAED,IAAI,kBAAkB,uBAErB;IAEK,IAAI;IAOJ,KAAK;IAcL,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAI/C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;;;IAIlE;;OAEG;IACH,2BAA2B;IAerB,sBAAsB;YAkDd,oBAAoB;CA6CnC"}
@@ -1,8 +1,36 @@
1
+ import { Context } from '@dxos/context';
1
2
  import { CredentialProcessor } from '@dxos/credentials';
2
3
  import { FeedWriter } from '@dxos/feed-store';
3
4
  import { Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
4
5
  import { NotarizationService, NotarizeRequest } from '@dxos/protocols/proto/dxos/mesh/teleport/notarization';
5
6
  import { ExtensionContext, RpcExtension } from '@dxos/teleport';
7
+ export declare type NotarizeParams = {
8
+ /**
9
+ * For cancellation.
10
+ */
11
+ ctx?: Context;
12
+ /**
13
+ * Credentials to notarize.
14
+ */
15
+ credentials: Credential[];
16
+ /**
17
+ * Timeout for the whole notarization process.
18
+ * Set to 0 to disable.
19
+ * @default {@link DEFAULT_NOTARIZE_TIMEOUT}
20
+ */
21
+ timeout?: number;
22
+ /**
23
+ * Retry timeout.
24
+ * @default {@link DEFAULT_RETRY_TIMEOUT}
25
+ */
26
+ retryTimeout?: number;
27
+ /**
28
+ * Minimum wait time after a peer confirms successful notarization before attempting with a new peer.
29
+ * This is to avoid spamming peers with notarization requests.
30
+ * @default {@link DEFAULT_SUCCESS_DELAY}
31
+ */
32
+ successDelay?: number;
33
+ };
6
34
  /**
7
35
  * See NotarizationService proto.
8
36
  */
@@ -18,7 +46,7 @@ export declare class NotarizationPlugin implements CredentialProcessor {
18
46
  /**
19
47
  * Request credentials to be notarized.
20
48
  */
21
- notarize(credentials: Credential[]): Promise<void>;
49
+ notarize({ ctx: opCtx, credentials, timeout, retryTimeout, successDelay }: NotarizeParams): Promise<void>;
22
50
  /**
23
51
  * Called with credentials arriving from the control pipeline.
24
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"notarization-plugin.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/notarization-plugin.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAYhE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;IAEhD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6C;IACnF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsD;IAE5F,IAAI;IAEJ,KAAK;IAIX;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE;IAuExC;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU;IASpC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC;YAK1B,mBAAmB;IAOjC;;OAEG;YACW,WAAW;IAazB,eAAe;CAehB;AAED,oBAAY,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,qBAAa,6BAA8B,SAAQ,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,mCAAmC;cAWzD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAUjC,MAAM,CAAC,GAAG,EAAE,gBAAgB;IAK5B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS;CAI/C;AAED,aAAK,QAAQ,GAAG;IACd,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC"}
1
+ {"version":3,"file":"notarization-plugin.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/notarization-plugin.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAShE,oBAAY,cAAc,GAAG;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAe;IAEhD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6C;IACnF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsD;IAE5F,IAAI;IAEJ,KAAK;IAIX;;OAEG;IACG,QAAQ,CAAC,EACb,GAAG,EAAE,KAAK,EACV,WAAW,EACX,OAAkC,EAClC,YAAoC,EACpC,YAAoC,EACrC,EAAE,cAAc;IA6EjB;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU;IASpC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC;YAK1B,mBAAmB;IAOjC;;OAEG;YACW,WAAW;IAazB,eAAe;CAehB;AAED,oBAAY,mCAAmC,GAAG;IAChD,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,qBAAa,6BAA8B,SAAQ,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,mCAAmC;cAWzD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;IAUjC,MAAM,CAAC,GAAG,EAAE,gBAAgB;IAK5B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS;CAI/C;AAED,aAAK,QAAQ,GAAG;IACd,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"spaces-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/spaces-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,EAEL,aAAa,EAEb,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAY,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAHpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,yBAAyB,EAAE,wBAAwB,EACnD,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAS7B,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAI7C,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IAgDpC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB;IAMpE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAajE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAcrE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAOzE,OAAO,CAAC,eAAe;CAmBxB"}
1
+ {"version":3,"file":"spaces-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/spaces-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,EAEL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAY,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAHpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,yBAAyB,EAAE,wBAAwB,EACnD,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAS7B,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAI7C,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IAoDpC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB;IAMpE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAajE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAcrE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAOzE,OAAO,CAAC,eAAe;CAyBxB"}
@@ -1,5 +1,5 @@
1
1
  import { Config } from '@dxos/config';
2
- import { SnapshotStore, DataPipelineControllerImpl, MetadataStore, SigningContext, SpaceManager } from '@dxos/echo-pipeline';
2
+ import { SnapshotStore, DataPipeline, MetadataStore, SigningContext, SpaceManager } from '@dxos/echo-pipeline';
3
3
  import { FeedStore } from '@dxos/feed-store';
4
4
  import { Keyring } from '@dxos/keyring';
5
5
  import { MemorySignalManagerContext } from '@dxos/messaging';
@@ -13,7 +13,7 @@ export declare const createServiceContext: ({ signalContext, storage }?: {
13
13
  }) => ServiceContext;
14
14
  export declare const createPeers: (numPeers: number) => Promise<ServiceContext[]>;
15
15
  export declare const createIdentity: (peer: ServiceContext) => Promise<ServiceContext>;
16
- export declare const syncItemsLocal: (db1: DataPipelineControllerImpl, db2: DataPipelineControllerImpl) => Promise<void>;
16
+ export declare const syncItemsLocal: (db1: DataPipeline, db2: DataPipeline) => Promise<void>;
17
17
  export declare class HostTestBuilder {
18
18
  readonly signalContext: MemorySignalManagerContext;
19
19
  createPeer(): TestPeer;
@@ -1 +1 @@
1
- {"version":3,"file":"host-test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/host-test-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAuB,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAA0B,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAiB,OAAO,EAAe,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMjE,eAAO,MAAM,iBAAiB,WAAY,MAAM,wBAAwB,0BAA0B,uBAUjG,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;oBAchC,CAAC;AAEF,eAAO,MAAM,WAAW,aAAoB,MAAM,8BAUjD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,cAAc,4BAGxD,CAAC;AAIF,eAAO,MAAM,cAAc,QAAe,0BAA0B,OAAO,0BAA0B,kBAGpG,CAAC;AAEF,qBAAa,eAAe;IAC1B,SAAgB,aAAa,6BAAoC;IAEjE,UAAU,IAAI,QAAQ;CAGvB;AAED,oBAAY,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,qBAAa,QAAQ;IAGP,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,MAAM,CAAqB;gBAEN,aAAa,EAAE,0BAA0B;IAEtE,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,YAEV;IAED,IAAI,SAAS,mBAUZ;IAED,IAAI,aAAa,kBAEhB;IAED,IAAI,aAAa,kBAEhB;IAED,IAAI,cAAc,mBAKjB;IAED,IAAI,YAAY,iBAKf;CACF;AAED,eAAO,MAAM,oBAAoB,YAAmB,OAAO,KAAG,QAAQ,cAAc,CAgBnF,CAAC"}
1
+ {"version":3,"file":"host-test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/host-test-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EAEb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAuB,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAA0B,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAiB,OAAO,EAAe,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMjE,eAAO,MAAM,iBAAiB,WAAY,MAAM,wBAAwB,0BAA0B,uBAUjG,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;oBAchC,CAAC;AAEF,eAAO,MAAM,WAAW,aAAoB,MAAM,8BAUjD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAgB,cAAc,4BAGxD,CAAC;AAIF,eAAO,MAAM,cAAc,QAAe,YAAY,OAAO,YAAY,kBAGxE,CAAC;AAEF,qBAAa,eAAe;IAC1B,SAAgB,aAAa,6BAAoC;IAEjE,UAAU,IAAI,QAAQ;CAGvB;AAED,oBAAY,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,qBAAa,QAAQ;IAGP,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,MAAM,CAAqB;gBAEN,aAAa,EAAE,0BAA0B;IAEtE,IAAI,OAAO,YAEV;IAED,IAAI,OAAO,YAEV;IAED,IAAI,SAAS,mBAUZ;IAED,IAAI,aAAa,kBAEhB;IAED,IAAI,aAAa,kBAEhB;IAED,IAAI,cAAc,mBAKjB;IAED,IAAI,YAAY,iBAKf;CACF;AAED,eAAO,MAAM,oBAAoB,YAAmB,OAAO,KAAG,QAAQ,cAAc,CAgBnF,CAAC"}
@@ -11,6 +11,7 @@ export declare class VaultResourceLock {
11
11
  private readonly _onRelease;
12
12
  private _releaseTrigger;
13
13
  constructor({ lockKey, onAcquire, onRelease }: VaultResourceLockOptions);
14
+ get lockKey(): string;
14
15
  acquire(): Promise<void>;
15
16
  release(): Promise<void>;
16
17
  private _onMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"vault-resource-lock.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/vault-resource-lock.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,oBAAY,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+C;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,eAAe,CAAiB;gBAE5B,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,wBAAwB;IAOjE,OAAO;IAYP,OAAO;IAIb,OAAO,CAAC,UAAU;YAMJ,YAAY;CAqB3B"}
1
+ {"version":3,"file":"vault-resource-lock.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/vault-resource-lock.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,oBAAY,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+C;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,eAAe,CAAiB;gBAE5B,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,wBAAwB;IAOvE,IACI,OAAO,WAEV;IAEK,OAAO;IAgBP,OAAO;IAIb,OAAO,CAAC,UAAU;YAMJ,YAAY;CAqB3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.1.31",
3
+ "version": "0.1.32-next.77d513e",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -20,39 +20,39 @@
20
20
  "src"
21
21
  ],
22
22
  "dependencies": {
23
- "@dxos/async": "0.1.31",
24
- "@dxos/client": "0.1.31",
25
- "@dxos/codec-protobuf": "0.1.31",
26
- "@dxos/config": "0.1.31",
27
- "@dxos/context": "0.1.31",
28
- "@dxos/credentials": "0.1.31",
29
- "@dxos/crypto": "0.1.31",
30
- "@dxos/debug": "0.1.31",
31
- "@dxos/document-model": "0.1.31",
32
- "@dxos/echo-db": "0.1.31",
33
- "@dxos/echo-pipeline": "0.1.31",
34
- "@dxos/errors": "0.1.31",
35
- "@dxos/feed-store": "0.1.31",
36
- "@dxos/keyring": "0.1.31",
37
- "@dxos/keys": "0.1.31",
38
- "@dxos/log": "0.1.31",
39
- "@dxos/messaging": "0.1.31",
40
- "@dxos/model-factory": "0.1.31",
41
- "@dxos/network-manager": "0.1.31",
42
- "@dxos/node-std": "0.1.31",
43
- "@dxos/protocols": "0.1.31",
44
- "@dxos/random-access-storage": "0.1.31",
45
- "@dxos/rpc": "0.1.31",
46
- "@dxos/teleport": "0.1.31",
47
- "@dxos/teleport-extension-gossip": "0.1.31",
48
- "@dxos/text-model": "0.1.31",
49
- "@dxos/timeframe": "0.1.31",
50
- "@dxos/util": "0.1.31"
23
+ "@dxos/async": "0.1.32-next.77d513e",
24
+ "@dxos/client": "0.1.32-next.77d513e",
25
+ "@dxos/codec-protobuf": "0.1.32-next.77d513e",
26
+ "@dxos/config": "0.1.32-next.77d513e",
27
+ "@dxos/context": "0.1.32-next.77d513e",
28
+ "@dxos/credentials": "0.1.32-next.77d513e",
29
+ "@dxos/crypto": "0.1.32-next.77d513e",
30
+ "@dxos/debug": "0.1.32-next.77d513e",
31
+ "@dxos/document-model": "0.1.32-next.77d513e",
32
+ "@dxos/echo-db": "0.1.32-next.77d513e",
33
+ "@dxos/echo-pipeline": "0.1.32-next.77d513e",
34
+ "@dxos/errors": "0.1.32-next.77d513e",
35
+ "@dxos/feed-store": "0.1.32-next.77d513e",
36
+ "@dxos/keyring": "0.1.32-next.77d513e",
37
+ "@dxos/keys": "0.1.32-next.77d513e",
38
+ "@dxos/log": "0.1.32-next.77d513e",
39
+ "@dxos/messaging": "0.1.32-next.77d513e",
40
+ "@dxos/model-factory": "0.1.32-next.77d513e",
41
+ "@dxos/network-manager": "0.1.32-next.77d513e",
42
+ "@dxos/node-std": "0.1.32-next.77d513e",
43
+ "@dxos/protocols": "0.1.32-next.77d513e",
44
+ "@dxos/random-access-storage": "0.1.32-next.77d513e",
45
+ "@dxos/rpc": "0.1.32-next.77d513e",
46
+ "@dxos/teleport": "0.1.32-next.77d513e",
47
+ "@dxos/teleport-extension-gossip": "0.1.32-next.77d513e",
48
+ "@dxos/text-model": "0.1.32-next.77d513e",
49
+ "@dxos/timeframe": "0.1.32-next.77d513e",
50
+ "@dxos/util": "0.1.32-next.77d513e"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/readable-stream": "^2.3.9",
54
54
  "fast-check": "~3.3.0",
55
- "@dxos/signal": "0.1.31"
55
+ "@dxos/signal": "0.1.32-next.77d513e"
56
56
  },
57
57
  "publishConfig": {
58
58
  "access": "public"
@@ -12,14 +12,16 @@ import { Keyring } from '@dxos/keyring';
12
12
  import { PublicKey } from '@dxos/keys';
13
13
  import { log } from '@dxos/log';
14
14
  import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
15
- import { AdmittedFeed, IdentityRecord, SpaceRecord } from '@dxos/protocols/proto/dxos/halo/credentials';
15
+ import { IdentityRecord, SpaceMetadata } from '@dxos/protocols/proto/dxos/echo/metadata';
16
+ import { AdmittedFeed } from '@dxos/protocols/proto/dxos/halo/credentials';
17
+ import { Timeframe } from '@dxos/timeframe';
16
18
  import { deferFunction } from '@dxos/util';
17
19
 
18
20
  import { createAuthProvider } from './authenticator';
19
21
  import { Identity } from './identity';
20
22
 
21
23
  interface ConstructSpaceParams {
22
- spaceRecord: SpaceRecord;
24
+ spaceRecord: SpaceMetadata;
23
25
  swarmIdentity: SwarmIdentity;
24
26
  identityKey: PublicKey;
25
27
  }
@@ -31,6 +33,12 @@ export type JoinIdentityParams = {
31
33
  haloGenesisFeedKey: PublicKey;
32
34
  controlFeedKey: PublicKey;
33
35
  dataFeedKey: PublicKey;
36
+
37
+ /**
38
+ * Latest known timeframe for the control pipeline.
39
+ * We will try to catch up to this timeframe before starting the data pipeline.
40
+ */
41
+ controlTimeframe?: Timeframe;
34
42
  };
35
43
 
36
44
  export type CreateIdentityOptions = {
@@ -82,10 +90,10 @@ export class IdentityManager {
82
90
  identityKey: await this._keyring.createKey(),
83
91
  deviceKey: await this._keyring.createKey(),
84
92
  haloSpace: {
85
- spaceKey: await this._keyring.createKey(),
93
+ key: await this._keyring.createKey(),
86
94
  genesisFeedKey: controlFeedKey,
87
- writeControlFeedKey: controlFeedKey,
88
- writeDataFeedKey: await this._keyring.createKey()
95
+ controlFeedKey,
96
+ dataFeedKey: await this._keyring.createKey()
89
97
  }
90
98
  };
91
99
 
@@ -94,17 +102,16 @@ export class IdentityManager {
94
102
 
95
103
  {
96
104
  const generator = new CredentialGenerator(this._keyring, identityRecord.identityKey, identityRecord.deviceKey);
105
+ assert(identityRecord.haloSpace.genesisFeedKey, 'Genesis feed key is required.');
106
+ assert(identityRecord.haloSpace.dataFeedKey, 'Data feed key is required.');
97
107
  const credentials = [
98
108
  // Space genesis.
99
- ...(await generator.createSpaceGenesis(
100
- identityRecord.haloSpace.spaceKey,
101
- identityRecord.haloSpace.genesisFeedKey
102
- )),
109
+ ...(await generator.createSpaceGenesis(identityRecord.haloSpace.key, identityRecord.haloSpace.genesisFeedKey)),
103
110
 
104
111
  // Feed admission.
105
112
  await generator.createFeedAdmission(
106
- identityRecord.haloSpace.spaceKey,
107
- identityRecord.haloSpace.writeDataFeedKey,
113
+ identityRecord.haloSpace.key,
114
+ identityRecord.haloSpace.dataFeedKey,
108
115
  AdmittedFeed.Designation.DATA
109
116
  )
110
117
  ];
@@ -148,10 +155,11 @@ export class IdentityManager {
148
155
  identityKey: params.identityKey,
149
156
  deviceKey: params.deviceKey,
150
157
  haloSpace: {
151
- spaceKey: params.haloSpaceKey,
158
+ key: params.haloSpaceKey,
152
159
  genesisFeedKey: params.haloGenesisFeedKey,
153
- writeControlFeedKey: params.controlFeedKey,
154
- writeDataFeedKey: params.dataFeedKey
160
+ controlFeedKey: params.controlFeedKey,
161
+ dataFeedKey: params.dataFeedKey,
162
+ controlTimeframe: params.controlTimeframe
155
163
  }
156
164
  };
157
165
  const identity = await this._constructIdentity(identityRecord);
@@ -170,10 +178,12 @@ export class IdentityManager {
170
178
  log('constructing identity', { identityRecord });
171
179
 
172
180
  // Must be created before the space so the feeds are writable.
173
- const controlFeed = await this._feedStore.openFeed(identityRecord.haloSpace.writeControlFeedKey, {
181
+ assert(identityRecord.haloSpace.controlFeedKey);
182
+ const controlFeed = await this._feedStore.openFeed(identityRecord.haloSpace.controlFeedKey, {
174
183
  writable: true
175
184
  });
176
- const dataFeed = await this._feedStore.openFeed(identityRecord.haloSpace.writeDataFeedKey, { writable: true });
185
+ assert(identityRecord.haloSpace.dataFeedKey);
186
+ const dataFeed = await this._feedStore.openFeed(identityRecord.haloSpace.dataFeedKey, { writable: true });
177
187
 
178
188
  const space = await this._constructSpace({
179
189
  spaceRecord: identityRecord.haloSpace,
@@ -195,13 +205,18 @@ export class IdentityManager {
195
205
  });
196
206
  log('done', { identityKey: identityRecord.identityKey });
197
207
 
208
+ // TODO(mykola): Set new timeframe on a write to a feed.
209
+ if (identityRecord.haloSpace.controlTimeframe) {
210
+ identity.controlPipeline.state.setTargetTimeframe(identityRecord.haloSpace.controlTimeframe);
211
+ }
212
+
198
213
  return identity;
199
214
  }
200
215
 
201
216
  private async _constructSpace({ spaceRecord, swarmIdentity, identityKey }: ConstructSpaceParams) {
202
217
  return this._spaceManager.constructSpace({
203
218
  metadata: {
204
- key: spaceRecord.spaceKey,
219
+ key: spaceRecord.key,
205
220
  genesisFeedKey: spaceRecord.genesisFeedKey
206
221
  },
207
222
  swarmIdentity,
@@ -98,7 +98,8 @@ export class DeviceInvitationsHandler extends AbstractInvitationsHandler {
98
98
  return {
99
99
  identityKey: identity.identityKey,
100
100
  haloSpaceKey: identity.haloSpaceKey,
101
- genesisFeedKey: identity.haloGenesisFeedKey
101
+ genesisFeedKey: identity.haloGenesisFeedKey,
102
+ controlTimeframe: identity.controlPipeline.state.timeframe
102
103
  };
103
104
  },
104
105
 
@@ -217,7 +218,7 @@ export class DeviceInvitationsHandler extends AbstractInvitationsHandler {
217
218
 
218
219
  // 1. Send request.
219
220
  log('sending admission request');
220
- const { identityKey, haloSpaceKey, genesisFeedKey } =
221
+ const { identityKey, haloSpaceKey, genesisFeedKey, controlTimeframe } =
221
222
  await extension.rpc.HaloHostService.requestAdmission();
222
223
 
223
224
  // 2. Get authentication code.
@@ -250,7 +251,8 @@ export class DeviceInvitationsHandler extends AbstractInvitationsHandler {
250
251
  haloSpaceKey,
251
252
  haloGenesisFeedKey: genesisFeedKey,
252
253
  controlFeedKey,
253
- dataFeedKey
254
+ dataFeedKey,
255
+ controlTimeframe
254
256
  });
255
257
 
256
258
  // 5. Success.
@@ -28,6 +28,17 @@ describe('services/space-invitations-handler', () => {
28
28
 
29
29
  const space = await peer.dataSpaceManager!.createSpace();
30
30
  expect(peer.dataSpaceManager!.spaces.has(space.key)).to.be.true;
31
+
32
+ await space.close();
33
+ });
34
+
35
+ test('genesis & ready', async () => {
36
+ const [peer] = await asyncChain<ServiceContext>([createIdentity, closeAfterTest])(createPeers(1));
37
+
38
+ const space = await peer.dataSpaceManager!.createSpace();
39
+ expect(peer.dataSpaceManager!.spaces.has(space.key)).to.be.true;
40
+
41
+ await peer.dataSpaceManager?.waitUntilSpaceReady(space.key);
31
42
  await space.close();
32
43
  });
33
44
 
@@ -36,7 +47,7 @@ describe('services/space-invitations-handler', () => {
36
47
  const space = await peer.dataSpaceManager!.createSpace();
37
48
  afterTest(() => space.close());
38
49
 
39
- await testLocalDatabase(space.dataPipelineController);
50
+ await testLocalDatabase(space.dataPipeline);
40
51
  });
41
52
 
42
53
  test('invitation with no auth', async () => {
@@ -53,7 +64,10 @@ describe('services/space-invitations-handler', () => {
53
64
  expect(space1).not.to.be.undefined;
54
65
  expect(space2).not.to.be.undefined;
55
66
 
56
- await syncItemsLocal(space1.dataPipelineController, space2.dataPipelineController);
67
+ await host.dataSpaceManager?.waitUntilSpaceReady(space1.key);
68
+ await guest.dataSpaceManager?.waitUntilSpaceReady(space2.key);
69
+
70
+ await syncItemsLocal(space1.dataPipeline, space2.dataPipeline);
57
71
 
58
72
  await space1.close();
59
73
  await space2.close();
@@ -116,7 +130,10 @@ describe('services/space-invitations-handler', () => {
116
130
  expect(space1).not.to.be.undefined;
117
131
  expect(space2).not.to.be.undefined;
118
132
 
119
- await syncItemsLocal(space1.dataPipelineController, space2.dataPipelineController);
133
+ await host.dataSpaceManager?.waitUntilSpaceReady(space1.key);
134
+ await guest.dataSpaceManager?.waitUntilSpaceReady(space2.key);
135
+
136
+ await syncItemsLocal(space1.dataPipeline, space2.dataPipeline);
120
137
 
121
138
  await space1.close();
122
139
  await space2.close();
@@ -177,7 +177,11 @@ export class SpaceInvitationsHandler extends AbstractInvitationsHandler<DataSpac
177
177
  // Updating credentials complete.
178
178
  complete.wake(deviceKey);
179
179
 
180
- return { credential: spaceMemberCredential };
180
+ return {
181
+ credential: spaceMemberCredential,
182
+ controlTimeframe: space.inner.controlPipeline.state.timeframe,
183
+ dataTimeframe: space.dataPipeline.pipelineState?.timeframe
184
+ };
181
185
  } catch (err) {
182
186
  // TODO(burdon): Generic RPC callback to report error to client.
183
187
  observable.callback.onError(err);
@@ -316,12 +320,13 @@ export class SpaceInvitationsHandler extends AbstractInvitationsHandler<DataSpac
316
320
 
317
321
  // 4. Send admission credentials to host (with local space keys).
318
322
  log('request admission', { guest: this._signingContext.deviceKey });
319
- const { credential } = await extension.rpc.SpaceHostService.requestAdmission({
320
- identityKey: this._signingContext.identityKey,
321
- deviceKey: this._signingContext.deviceKey,
322
- controlFeedKey,
323
- dataFeedKey
324
- });
323
+ const { credential, controlTimeframe, dataTimeframe } =
324
+ await extension.rpc.SpaceHostService.requestAdmission({
325
+ identityKey: this._signingContext.identityKey,
326
+ deviceKey: this._signingContext.deviceKey,
327
+ controlFeedKey,
328
+ dataFeedKey
329
+ });
325
330
 
326
331
  // 4. Create local space.
327
332
  const assertion = getCredentialAssertion(credential);
@@ -330,7 +335,9 @@ export class SpaceInvitationsHandler extends AbstractInvitationsHandler<DataSpac
330
335
 
331
336
  const space = await this._spaceManager.acceptSpace({
332
337
  spaceKey: assertion.spaceKey,
333
- genesisFeedKey: assertion.genesisFeedKey
338
+ genesisFeedKey: assertion.genesisFeedKey,
339
+ controlTimeframe,
340
+ dataTimeframe
334
341
  });
335
342
 
336
343
  // Record credential in our HALO.