@dxos/client-services 0.3.9-main.ee9a520 → 0.3.9-main.ef334cd

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 (28) hide show
  1. package/dist/lib/browser/{chunk-QETXI73D.mjs → chunk-5AFGJQGV.mjs} +111 -61
  2. package/dist/lib/browser/{chunk-QETXI73D.mjs.map → chunk-5AFGJQGV.mjs.map} +4 -4
  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 +1 -1
  6. package/dist/lib/node/{chunk-TVYC6AI7.cjs → chunk-RD2EVVPQ.cjs} +120 -73
  7. package/dist/lib/node/chunk-RD2EVVPQ.cjs.map +7 -0
  8. package/dist/lib/node/index.cjs +37 -37
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/packlets/testing/index.cjs +8 -8
  11. package/dist/types/src/packlets/services/service-context.d.ts +2 -1
  12. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  13. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  14. package/dist/types/src/packlets/spaces/automerge-space-state.d.ts +8 -0
  15. package/dist/types/src/packlets/spaces/automerge-space-state.d.ts.map +1 -0
  16. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +3 -2
  17. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  18. package/dist/types/src/packlets/spaces/data-space.d.ts +7 -2
  19. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  20. package/dist/types/src/version.d.ts +1 -1
  21. package/package.json +35 -35
  22. package/src/packlets/services/service-context.ts +5 -0
  23. package/src/packlets/services/service-host.ts +4 -1
  24. package/src/packlets/spaces/automerge-space-state.ts +22 -0
  25. package/src/packlets/spaces/data-space-manager.ts +11 -1
  26. package/src/packlets/spaces/data-space.ts +53 -6
  27. package/src/version.ts +1 -1
  28. package/dist/lib/node/chunk-TVYC6AI7.cjs.map +0 -7
@@ -31,7 +31,7 @@ __export(testing_exports, {
31
31
  syncItemsLocal: () => syncItemsLocal
32
32
  });
33
33
  module.exports = __toCommonJS(testing_exports);
34
- var import_chunk_TVYC6AI7 = require("../../chunk-TVYC6AI7.cjs");
34
+ var import_chunk_RD2EVVPQ = require("../../chunk-RD2EVVPQ.cjs");
35
35
  var import_credentials = require("@dxos/credentials");
36
36
  var import_keys = require("@dxos/keys");
37
37
  var import_async = require("@dxos/async");
@@ -216,7 +216,7 @@ var createInvitation = (host, options) => {
216
216
  authMethod: import_services.Invitation.AuthMethod.NONE,
217
217
  ...options ?? {}
218
218
  };
219
- if (host instanceof import_chunk_TVYC6AI7.ServiceContext) {
219
+ if (host instanceof import_chunk_RD2EVVPQ.ServiceContext) {
220
220
  const hostHandler = host.getInvitationHandler({
221
221
  kind: import_services.Invitation.Kind.SPACE,
222
222
  ...options
@@ -227,7 +227,7 @@ var createInvitation = (host, options) => {
227
227
  };
228
228
  var acceptInvitation = (guest, invitation) => {
229
229
  invitation = sanitizeInvitation(invitation);
230
- if (guest instanceof import_chunk_TVYC6AI7.ServiceContext) {
230
+ if (guest instanceof import_chunk_RD2EVVPQ.ServiceContext) {
231
231
  const guestHandler = guest.getInvitationHandler({
232
232
  kind: invitation.kind
233
233
  });
@@ -236,7 +236,7 @@ var acceptInvitation = (guest, invitation) => {
236
236
  return guest.join(invitation);
237
237
  };
238
238
  var createServiceHost = (config, signalManagerContext) => {
239
- return new import_chunk_TVYC6AI7.ClientServicesHost({
239
+ return new import_chunk_RD2EVVPQ.ClientServicesHost({
240
240
  config,
241
241
  signalManager: new import_messaging.MemorySignalManager(signalManagerContext),
242
242
  transportFactory: import_network_manager.MemoryTransportFactory
@@ -250,8 +250,8 @@ var createServiceContext = ({ signalContext = new import_messaging.MemorySignalM
250
250
  signalManager,
251
251
  transportFactory: import_network_manager.MemoryTransportFactory
252
252
  });
253
- const modelFactory = (0, import_chunk_TVYC6AI7.createDefaultModelFactory)();
254
- return new import_chunk_TVYC6AI7.ServiceContext(storage, networkManager, signalManager, modelFactory);
253
+ const modelFactory = (0, import_chunk_RD2EVVPQ.createDefaultModelFactory)();
254
+ return new import_chunk_RD2EVVPQ.ServiceContext(storage, networkManager, signalManager, modelFactory);
255
255
  };
256
256
  var createPeers = async (numPeers) => {
257
257
  const signalContext = new import_messaging.MemorySignalManagerContext();
@@ -335,7 +335,7 @@ var TestPeer = class {
335
335
  feedStore: this.feedStore,
336
336
  networkManager: this.networkManager,
337
337
  metadataStore: this.metadataStore,
338
- modelFactory: (0, import_chunk_TVYC6AI7.createDefaultModelFactory)(),
338
+ modelFactory: (0, import_chunk_RD2EVVPQ.createDefaultModelFactory)(),
339
339
  snapshotStore: this.snapshotStore,
340
340
  blobStore: this.blobStore
341
341
  });
@@ -344,7 +344,7 @@ var TestPeer = class {
344
344
  return this._props.signingContext ?? (0, import_debug.failUndefined)();
345
345
  }
346
346
  get dataSpaceManager() {
347
- return this._props.dataSpaceManager ??= new import_chunk_TVYC6AI7.DataSpaceManager(this.spaceManager, this.metadataStore, new import_echo_pipeline.DataServiceSubscriptions(), this.keyring, this.identity, this.feedStore);
347
+ return this._props.dataSpaceManager ??= new import_chunk_RD2EVVPQ.DataSpaceManager(this.spaceManager, this.metadataStore, new import_echo_pipeline.DataServiceSubscriptions(), this.keyring, this.identity, this.feedStore);
348
348
  }
349
349
  async createIdentity() {
350
350
  this._props.signingContext ??= await createSigningContext(this.keyring);
@@ -1,6 +1,6 @@
1
1
  import { Trigger } from '@dxos/async';
2
2
  import { Context } from '@dxos/context';
3
- import { MetadataStore, SpaceManager, DataServiceSubscriptions, SnapshotStore } from '@dxos/echo-pipeline';
3
+ import { MetadataStore, SpaceManager, DataServiceSubscriptions, SnapshotStore, AutomergeHost } from '@dxos/echo-pipeline';
4
4
  import { FeedStore } from '@dxos/feed-store';
5
5
  import { Keyring } from '@dxos/keyring';
6
6
  import { type SignalManager } from '@dxos/messaging';
@@ -35,6 +35,7 @@ export declare class ServiceContext {
35
35
  readonly spaceManager: SpaceManager;
36
36
  readonly identityManager: IdentityManager;
37
37
  readonly invitations: InvitationsHandler;
38
+ readonly automergeHost: AutomergeHost;
38
39
  dataSpaceManager?: DataSpaceManager;
39
40
  private readonly _handlerFactories;
40
41
  private _deviceSpaceSync?;
@@ -1 +1 @@
1
- {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAIjE,OAAO,EAAE,KAAK,qBAAqB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AACnG,OAAO,EAEL,kBAAkB,EAClB,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAuB,MAAM,WAAW,CAAC;AAElE;;GAEG;AAGH,qBAEa,cAAc;aA4BP,OAAO,EAAE,OAAO;aAChB,cAAc,EAAE,cAAc;aAC9B,aAAa,EAAE,aAAa;aAC5B,YAAY,EAAE,YAAY;IA9B5C,SAAgB,WAAW,gBAAiB;IAC5C,SAAgB,wBAAwB,2BAAkC;IAC1E,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C;;OAEG;IACH,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAGzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGxC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY;IA8CtC,IAAI,CAAC,GAAG,EAAE,OAAO;IAkBjB,KAAK;IAgBL,cAAc,CAAC,MAAM,GAAE,qBAA0B;IAMvD,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,kBAAkB;IAM9F,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS;YAUnD,eAAe;YAMf,oBAAoB;YAUpB,WAAW;CA8D1B"}
1
+ {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,aAAa,EACb,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAIjE,OAAO,EAAE,KAAK,qBAAqB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AACnG,OAAO,EAEL,kBAAkB,EAClB,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAuB,MAAM,WAAW,CAAC;AAElE;;GAEG;AAGH,qBAEa,cAAc;aA6BP,OAAO,EAAE,OAAO;aAChB,cAAc,EAAE,cAAc;aAC9B,aAAa,EAAE,aAAa;aAC5B,YAAY,EAAE,YAAY;IA/B5C,SAAgB,WAAW,gBAAiB;IAC5C,SAAgB,wBAAwB,2BAAkC;IAC1E,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C;;OAEG;IACH,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,SAAgB,aAAa,EAAE,aAAa,CAAC;IAGtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGxC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY;IAgDtC,IAAI,CAAC,GAAG,EAAE,OAAO;IAkBjB,KAAK;IAgBL,cAAc,CAAC,MAAM,GAAE,qBAA0B;IAMvD,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,kBAAkB;IAM9F,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS;YAUnD,eAAe;YAMf,oBAAoB;YAUpB,WAAW;CA+D1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIhH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAarD,eAAO,MAAM,yBAAyB,oBAErC,CAAC;AAiBF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAC,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAyC;IAEhE,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,YAA0C,EAC1C,gBAAgB,EAChB,aAAa,EACb,OAAO,EAEP,OAAO,EACP,SAAS,GACV,GAAE,wBAA6B;IAiDhC,IAAI,MAAM,YAET;IAED,IAAI,MAAM,uBAET;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAiC9C,IAAI,CAAC,GAAG,EAAE,OAAO;IA0FjB,KAAK;IAgBL,KAAK;YAYG,eAAe;CAkB9B"}
1
+ {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAoD,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIhH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAM3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAarD,eAAO,MAAM,yBAAyB,oBAErC,CAAC;AAiBF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,UAAU,CAAC,CAA8B;IACjD,OAAO,CAAC,cAAc,CAAC,CAAyC;IAEhE,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAS;gBAEV,EACV,MAAM,EACN,YAA0C,EAC1C,gBAAgB,EAChB,aAAa,EACb,OAAO,EAEP,OAAO,EACP,SAAS,GACV,GAAE,wBAA6B;IAiDhC,IAAI,MAAM,YAET;IAED,IAAI,MAAM,uBAET;IAED,IAAI,OAAO,mBAEV;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,iBAAiB;IAiC9C,IAAI,CAAC,GAAG,EAAE,OAAO;IA6FjB,KAAK;IAgBL,KAAK;YAYG,eAAe;CAkB9B"}
@@ -0,0 +1,8 @@
1
+ import { type CredentialProcessor, type SpecificCredential } from '@dxos/credentials';
2
+ import { type Credential, type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';
3
+ export declare class AutomergeSpaceState implements CredentialProcessor {
4
+ rootUrl: string | undefined;
5
+ lastEpoch: SpecificCredential<Epoch> | undefined;
6
+ processCredential(credential: Credential): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=automerge-space-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automerge-space-state.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/automerge-space-state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,6CAA6C,CAAC;AAE1F,qBAAa,mBAAoB,YAAW,mBAAmB;IACtD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACxC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAa;IAE9D,iBAAiB,CAAC,UAAU,EAAE,UAAU;CAU/C"}
@@ -1,6 +1,6 @@
1
1
  import { Event } from '@dxos/async';
2
2
  import { type CredentialSigner } from '@dxos/credentials';
3
- import { type DataServiceSubscriptions, type MetadataStore, type SpaceManager } from '@dxos/echo-pipeline';
3
+ import { type AutomergeHost, type DataServiceSubscriptions, type MetadataStore, type SpaceManager } from '@dxos/echo-pipeline';
4
4
  import { type FeedStore } from '@dxos/feed-store';
5
5
  import { type Keyring } from '@dxos/keyring';
6
6
  import { PublicKey } from '@dxos/keys';
@@ -37,12 +37,13 @@ export declare class DataSpaceManager {
37
37
  private readonly _keyring;
38
38
  private readonly _signingContext;
39
39
  private readonly _feedStore;
40
+ private readonly _automergeHost?;
40
41
  private readonly _ctx;
41
42
  readonly updated: Event<void>;
42
43
  private readonly _spaces;
43
44
  private _isOpen;
44
45
  private readonly _instanceId;
45
- constructor(_spaceManager: SpaceManager, _metadataStore: MetadataStore, _dataServiceSubscriptions: DataServiceSubscriptions, _keyring: Keyring, _signingContext: SigningContext, _feedStore: FeedStore<FeedMessage>);
46
+ constructor(_spaceManager: SpaceManager, _metadataStore: MetadataStore, _dataServiceSubscriptions: DataServiceSubscriptions, _keyring: Keyring, _signingContext: SigningContext, _feedStore: FeedStore<FeedMessage>, _automergeHost?: AutomergeHost | undefined);
46
47
  get spaces(): ComplexMap<PublicKey, DataSpace>;
47
48
  open(): Promise<void>;
48
49
  close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"data-space-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA4B,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,aAAa,EAAc,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEpG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAA+B,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,UAAU,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,MAAM,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;IAWzB,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,UAAU;IAf7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,SAAgB,OAAO,cAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAEhF,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGvC,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,yBAAyB,EAAE,wBAAwB,EACnD,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,cAAc,EAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC;IAIrD,IAAI,MAAM,qCAET;IAGK,IAAI;IA2BJ,KAAK;IASX;;OAEG;IAEG,WAAW;IA+BX,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoB/D;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,SAAS;YAU/B,eAAe;CAwF9B"}
1
+ {"version":3,"file":"data-space-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA4B,MAAM,aAAa,CAAC;AAE9D,OAAO,EAAE,KAAK,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAElB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAEpG,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,UAAU,EAA+B,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,UAAU,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,MAAM,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;IAWzB,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,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAlBlC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,SAAgB,OAAO,cAAe;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwD;IAEhF,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAGvC,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,aAAa,EAC7B,yBAAyB,EAAE,wBAAwB,EACnD,QAAQ,EAAE,OAAO,EACjB,eAAe,EAAE,cAAc,EAC/B,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,EAGlC,cAAc,CAAC,2BAAe;IAIjD,IAAI,MAAM,qCAET;IAGK,IAAI;IA2BJ,KAAK;IASX;;OAEG;IAEG,WAAW;IA+BX,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAoB/D;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,SAAS;YAU/B,eAAe;CAyF9B"}
@@ -1,5 +1,5 @@
1
1
  import { Event } from '@dxos/async';
2
- import { type MetadataStore, type Space, type DataPipeline } from '@dxos/echo-pipeline';
2
+ import { type MetadataStore, type Space, type DataPipeline, type CreateEpochOptions, type AutomergeHost } from '@dxos/echo-pipeline';
3
3
  import { type FeedStore } from '@dxos/feed-store';
4
4
  import { type Keyring } from '@dxos/keyring';
5
5
  import { PublicKey } from '@dxos/keys';
@@ -9,6 +9,7 @@ import { type SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
9
9
  import { type ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
10
10
  import { type GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
11
11
  import { type Gossip, type Presence } from '@dxos/teleport-extension-gossip';
12
+ import { AutomergeSpaceState } from './automerge-space-state';
12
13
  import { type SigningContext } from './data-space-manager';
13
14
  import { NotarizationPlugin } from './notarization-plugin';
14
15
  import { TrustedKeySetAuthVerifier } from '../identity';
@@ -37,6 +38,7 @@ export type DataSpaceParams = {
37
38
  signingContext: SigningContext;
38
39
  callbacks?: DataSpaceCallbacks;
39
40
  cache?: SpaceCache;
41
+ automergeHost?: AutomergeHost;
40
42
  };
41
43
  export declare class DataSpace {
42
44
  private _ctx;
@@ -50,6 +52,8 @@ export declare class DataSpace {
50
52
  private readonly _notarizationPlugin;
51
53
  private readonly _callbacks;
52
54
  private readonly _cache?;
55
+ private readonly _automergeHost?;
56
+ private readonly _automergeSpaceState;
53
57
  private _state;
54
58
  /**
55
59
  * Error for _state === SpaceState.ERROR.
@@ -67,6 +71,7 @@ export declare class DataSpace {
67
71
  get presence(): Presence;
68
72
  get notarizationPlugin(): NotarizationPlugin;
69
73
  get cache(): SpaceCache | undefined;
74
+ get automergeSpaceState(): AutomergeSpaceState;
70
75
  open(): Promise<void>;
71
76
  private _open;
72
77
  close(): Promise<void>;
@@ -83,7 +88,7 @@ export declare class DataSpace {
83
88
  private _initializeAndReadControlPipeline;
84
89
  private _createWritableFeeds;
85
90
  updateOwnProfile(profile: ProfileDocument): Promise<void>;
86
- createEpoch(): Promise<void>;
91
+ createEpoch(options?: CreateEpochOptions): Promise<void>;
87
92
  activate(): Promise<void>;
88
93
  deactivate(): Promise<void>;
89
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.3.9-main.ee9a520";
1
+ export declare const DXOS_VERSION = "0.3.9-main.ef334cd";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.3.9-main.ee9a520",
3
+ "version": "0.3.9-main.ef334cd",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -22,44 +22,44 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "platform": "^1.3.6",
25
- "@dxos/async": "0.3.9-main.ee9a520",
26
- "@dxos/client-protocol": "0.3.9-main.ee9a520",
27
- "@dxos/config": "0.3.9-main.ee9a520",
28
- "@dxos/codec-protobuf": "0.3.9-main.ee9a520",
29
- "@dxos/context": "0.3.9-main.ee9a520",
30
- "@dxos/credentials": "0.3.9-main.ee9a520",
31
- "@dxos/crypto": "0.3.9-main.ee9a520",
32
- "@dxos/document-model": "0.3.9-main.ee9a520",
33
- "@dxos/debug": "0.3.9-main.ee9a520",
34
- "@dxos/echo-db": "0.3.9-main.ee9a520",
35
- "@dxos/echo-pipeline": "0.3.9-main.ee9a520",
36
- "@dxos/invariant": "0.3.9-main.ee9a520",
37
- "@dxos/keyring": "0.3.9-main.ee9a520",
38
- "@dxos/echo-schema": "0.3.9-main.ee9a520",
39
- "@dxos/feed-store": "0.3.9-main.ee9a520",
40
- "@dxos/keys": "0.3.9-main.ee9a520",
41
- "@dxos/lock-file": "0.3.9-main.ee9a520",
42
- "@dxos/log": "0.3.9-main.ee9a520",
43
- "@dxos/model-factory": "0.3.9-main.ee9a520",
44
- "@dxos/network-manager": "0.3.9-main.ee9a520",
45
- "@dxos/messaging": "0.3.9-main.ee9a520",
46
- "@dxos/node-std": "0.3.9-main.ee9a520",
47
- "@dxos/protocols": "0.3.9-main.ee9a520",
48
- "@dxos/random-access-storage": "0.3.9-main.ee9a520",
49
- "@dxos/rpc": "0.3.9-main.ee9a520",
50
- "@dxos/teleport": "0.3.9-main.ee9a520",
51
- "@dxos/teleport-extension-gossip": "0.3.9-main.ee9a520",
52
- "@dxos/text-model": "0.3.9-main.ee9a520",
53
- "@dxos/teleport-extension-object-sync": "0.3.9-main.ee9a520",
54
- "@dxos/tracing": "0.3.9-main.ee9a520",
55
- "@dxos/util": "0.3.9-main.ee9a520",
56
- "@dxos/websocket-rpc": "0.3.9-main.ee9a520",
57
- "@dxos/timeframe": "0.3.9-main.ee9a520"
25
+ "@dxos/async": "0.3.9-main.ef334cd",
26
+ "@dxos/client-protocol": "0.3.9-main.ef334cd",
27
+ "@dxos/codec-protobuf": "0.3.9-main.ef334cd",
28
+ "@dxos/config": "0.3.9-main.ef334cd",
29
+ "@dxos/context": "0.3.9-main.ef334cd",
30
+ "@dxos/credentials": "0.3.9-main.ef334cd",
31
+ "@dxos/crypto": "0.3.9-main.ef334cd",
32
+ "@dxos/debug": "0.3.9-main.ef334cd",
33
+ "@dxos/echo-db": "0.3.9-main.ef334cd",
34
+ "@dxos/document-model": "0.3.9-main.ef334cd",
35
+ "@dxos/echo-pipeline": "0.3.9-main.ef334cd",
36
+ "@dxos/feed-store": "0.3.9-main.ef334cd",
37
+ "@dxos/echo-schema": "0.3.9-main.ef334cd",
38
+ "@dxos/keyring": "0.3.9-main.ef334cd",
39
+ "@dxos/keys": "0.3.9-main.ef334cd",
40
+ "@dxos/invariant": "0.3.9-main.ef334cd",
41
+ "@dxos/messaging": "0.3.9-main.ef334cd",
42
+ "@dxos/lock-file": "0.3.9-main.ef334cd",
43
+ "@dxos/log": "0.3.9-main.ef334cd",
44
+ "@dxos/model-factory": "0.3.9-main.ef334cd",
45
+ "@dxos/network-manager": "0.3.9-main.ef334cd",
46
+ "@dxos/node-std": "0.3.9-main.ef334cd",
47
+ "@dxos/random-access-storage": "0.3.9-main.ef334cd",
48
+ "@dxos/rpc": "0.3.9-main.ef334cd",
49
+ "@dxos/protocols": "0.3.9-main.ef334cd",
50
+ "@dxos/teleport": "0.3.9-main.ef334cd",
51
+ "@dxos/teleport-extension-object-sync": "0.3.9-main.ef334cd",
52
+ "@dxos/teleport-extension-gossip": "0.3.9-main.ef334cd",
53
+ "@dxos/text-model": "0.3.9-main.ef334cd",
54
+ "@dxos/timeframe": "0.3.9-main.ef334cd",
55
+ "@dxos/tracing": "0.3.9-main.ef334cd",
56
+ "@dxos/util": "0.3.9-main.ef334cd",
57
+ "@dxos/websocket-rpc": "0.3.9-main.ef334cd"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/platform": "^1.3.4",
61
61
  "@types/readable-stream": "^2.3.9",
62
- "@dxos/signal": "0.3.9-main.ee9a520"
62
+ "@dxos/signal": "0.3.9-main.ef334cd"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public"
@@ -12,6 +12,7 @@ import {
12
12
  SpaceManager,
13
13
  DataServiceSubscriptions,
14
14
  SnapshotStore,
15
+ AutomergeHost,
15
16
  } from '@dxos/echo-pipeline';
16
17
  import { FeedFactory, FeedStore } from '@dxos/feed-store';
17
18
  import { invariant } from '@dxos/invariant';
@@ -60,6 +61,7 @@ export class ServiceContext {
60
61
  public readonly spaceManager: SpaceManager;
61
62
  public readonly identityManager: IdentityManager;
62
63
  public readonly invitations: InvitationsHandler;
64
+ public readonly automergeHost: AutomergeHost;
63
65
 
64
66
  // Initialized after identity is initialized.
65
67
  public dataSpaceManager?: DataSpaceManager;
@@ -107,6 +109,8 @@ export class ServiceContext {
107
109
 
108
110
  this.identityManager = new IdentityManager(this.metadataStore, this.keyring, this.feedStore, this.spaceManager);
109
111
 
112
+ this.automergeHost = new AutomergeHost(storage.createDirectory('automerge'));
113
+
110
114
  this.invitations = new InvitationsHandler(this.networkManager);
111
115
 
112
116
  // TODO(burdon): _initialize called in multiple places.
@@ -215,6 +219,7 @@ export class ServiceContext {
215
219
  this.keyring,
216
220
  signingContext,
217
221
  this.feedStore,
222
+ this.automergeHost,
218
223
  );
219
224
  await this.dataSpaceManager.open();
220
225
 
@@ -282,7 +282,10 @@ export class ClientServicesHost {
282
282
  },
283
283
  ),
284
284
 
285
- DataService: new DataServiceImpl(this._serviceContext.dataServiceSubscriptions),
285
+ DataService: new DataServiceImpl(
286
+ this._serviceContext.dataServiceSubscriptions,
287
+ this._serviceContext.automergeHost,
288
+ ),
286
289
 
287
290
  NetworkService: new NetworkServiceImpl(this._serviceContext.networkManager, this._serviceContext.signalManager),
288
291
 
@@ -0,0 +1,22 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type CredentialProcessor, type SpecificCredential, checkCredentialType } from '@dxos/credentials';
6
+ import { type Credential, type Epoch } from '@dxos/protocols/proto/dxos/halo/credentials';
7
+
8
+ export class AutomergeSpaceState implements CredentialProcessor {
9
+ public rootUrl: string | undefined = undefined;
10
+ public lastEpoch: SpecificCredential<Epoch> | undefined = undefined;
11
+
12
+ async processCredential(credential: Credential) {
13
+ if (!checkCredentialType(credential, 'dxos.halo.credentials.Epoch')) {
14
+ return;
15
+ }
16
+
17
+ this.lastEpoch = credential;
18
+ if (credential.subject.assertion.automergeRoot) {
19
+ this.rootUrl = credential.subject.assertion.automergeRoot;
20
+ }
21
+ }
22
+ }
@@ -5,7 +5,13 @@
5
5
  import { Event, synchronized, trackLeaks } from '@dxos/async';
6
6
  import { cancelWithContext, Context } from '@dxos/context';
7
7
  import { type CredentialSigner, getCredentialAssertion } from '@dxos/credentials';
8
- import { type DataServiceSubscriptions, type MetadataStore, type Space, type SpaceManager } from '@dxos/echo-pipeline';
8
+ import {
9
+ type AutomergeHost,
10
+ type DataServiceSubscriptions,
11
+ type MetadataStore,
12
+ type Space,
13
+ type SpaceManager,
14
+ } from '@dxos/echo-pipeline';
9
15
  import { type FeedStore } from '@dxos/feed-store';
10
16
  import { invariant } from '@dxos/invariant';
11
17
  import { type Keyring } from '@dxos/keyring';
@@ -71,6 +77,9 @@ export class DataSpaceManager {
71
77
  private readonly _keyring: Keyring,
72
78
  private readonly _signingContext: SigningContext,
73
79
  private readonly _feedStore: FeedStore<FeedMessage>,
80
+
81
+ // TODO(dmaretskyi): Make required.
82
+ private readonly _automergeHost?: AutomergeHost,
74
83
  ) {}
75
84
 
76
85
  // TODO(burdon): Remove.
@@ -257,6 +266,7 @@ export class DataSpaceManager {
257
266
  },
258
267
  },
259
268
  cache: metadata.cache,
269
+ automergeHost: this._automergeHost,
260
270
  });
261
271
 
262
272
  if (metadata.state !== SpaceState.INACTIVE) {
@@ -6,22 +6,35 @@ import { Event, scheduleTask, sleep, synchronized, trackLeaks } from '@dxos/asyn
6
6
  import { AUTH_TIMEOUT } from '@dxos/client-protocol';
7
7
  import { cancelWithContext, Context } from '@dxos/context';
8
8
  import { timed } from '@dxos/debug';
9
- import { type MetadataStore, type Space, createMappedFeedWriter, type DataPipeline } from '@dxos/echo-pipeline';
9
+ import {
10
+ type MetadataStore,
11
+ type Space,
12
+ createMappedFeedWriter,
13
+ type DataPipeline,
14
+ type CreateEpochOptions,
15
+ type AutomergeHost,
16
+ } from '@dxos/echo-pipeline';
10
17
  import { type FeedStore } from '@dxos/feed-store';
11
18
  import { type Keyring } from '@dxos/keyring';
12
19
  import { PublicKey } from '@dxos/keys';
13
20
  import { log } from '@dxos/log';
14
21
  import { CancelledError, SystemError } from '@dxos/protocols';
15
- import { SpaceState, type Space as SpaceProto } from '@dxos/protocols/proto/dxos/client/services';
22
+ import { SpaceState, type Space as SpaceProto, CreateEpochRequest } from '@dxos/protocols/proto/dxos/client/services';
16
23
  import { type FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
17
24
  import { type SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
18
- import { AdmittedFeed, type ProfileDocument, type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
25
+ import {
26
+ AdmittedFeed,
27
+ type ProfileDocument,
28
+ type Credential,
29
+ type Epoch,
30
+ } from '@dxos/protocols/proto/dxos/halo/credentials';
19
31
  import { type GossipMessage } from '@dxos/protocols/proto/dxos/mesh/teleport/gossip';
20
32
  import { type Gossip, type Presence } from '@dxos/teleport-extension-gossip';
21
33
  import { Timeframe } from '@dxos/timeframe';
22
34
  import { trace } from '@dxos/tracing';
23
35
  import { ComplexSet } from '@dxos/util';
24
36
 
37
+ import { AutomergeSpaceState } from './automerge-space-state';
25
38
  import { type SigningContext } from './data-space-manager';
26
39
  import { NotarizationPlugin } from './notarization-plugin';
27
40
  import { TrustedKeySetAuthVerifier } from '../identity';
@@ -54,6 +67,9 @@ export type DataSpaceParams = {
54
67
  signingContext: SigningContext;
55
68
  callbacks?: DataSpaceCallbacks;
56
69
  cache?: SpaceCache;
70
+
71
+ // TODO(dmaretskyi): Make required.
72
+ automergeHost?: AutomergeHost;
57
73
  };
58
74
 
59
75
  /**
@@ -74,7 +90,11 @@ export class DataSpace {
74
90
  private readonly _signingContext: SigningContext;
75
91
  private readonly _notarizationPlugin = new NotarizationPlugin();
76
92
  private readonly _callbacks: DataSpaceCallbacks;
77
- private readonly _cache?: SpaceCache;
93
+ private readonly _cache?: SpaceCache = undefined;
94
+ private readonly _automergeHost?: AutomergeHost = undefined;
95
+
96
+ // TODO(dmaretskyi): Move into Space?
97
+ private readonly _automergeSpaceState = new AutomergeSpaceState();
78
98
 
79
99
  private _state = SpaceState.CLOSED;
80
100
 
@@ -151,6 +171,10 @@ export class DataSpace {
151
171
  return this._cache;
152
172
  }
153
173
 
174
+ get automergeSpaceState() {
175
+ return this._automergeSpaceState;
176
+ }
177
+
154
178
  @synchronized
155
179
  async open() {
156
180
  await this._open();
@@ -160,6 +184,7 @@ export class DataSpace {
160
184
  await this._gossip.open();
161
185
  await this._notarizationPlugin.open();
162
186
  await this._inner.spaceState.addCredentialProcessor(this._notarizationPlugin);
187
+ await this._inner.spaceState.addCredentialProcessor(this._automergeSpaceState);
163
188
  await this._inner.open(new Context());
164
189
  this._state = SpaceState.CONTROL_ONLY;
165
190
  log('new state', { state: SpaceState[this._state] });
@@ -183,6 +208,7 @@ export class DataSpace {
183
208
  await this.authVerifier.close();
184
209
 
185
210
  await this._inner.close();
211
+ await this._inner.spaceState.removeCredentialProcessor(this._automergeSpaceState);
186
212
  await this._inner.spaceState.removeCredentialProcessor(this._notarizationPlugin);
187
213
  await this._notarizationPlugin.close();
188
214
 
@@ -350,8 +376,29 @@ export class DataSpace {
350
376
  await this.inner.controlPipeline.writer.write({ credential: { credential } });
351
377
  }
352
378
 
353
- async createEpoch() {
354
- const epoch = await this.dataPipeline.createEpoch();
379
+ async createEpoch(options?: CreateEpochOptions) {
380
+ let epoch: Epoch | undefined;
381
+ switch (options?.migration) {
382
+ case undefined:
383
+ case CreateEpochRequest.Migration.NONE:
384
+ {
385
+ epoch = await this.dataPipeline.createEpoch();
386
+ }
387
+ break;
388
+ case CreateEpochRequest.Migration.INIT_AUTOMERGE: {
389
+ const document = this._automergeHost?.repo.create();
390
+ epoch = {
391
+ previousId: this._automergeSpaceState.lastEpoch?.id,
392
+ number: (this._automergeSpaceState.lastEpoch?.subject.assertion.number ?? -1) + 1,
393
+ timeframe: this._automergeSpaceState.lastEpoch?.subject.assertion.timeframe ?? new Timeframe(),
394
+ automergeRoot: document?.url,
395
+ };
396
+ }
397
+ }
398
+
399
+ if (!epoch) {
400
+ return;
401
+ }
355
402
 
356
403
  const receipt = await this.inner.controlPipeline.writer.write({
357
404
  credential: {
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const DXOS_VERSION = "0.3.9-main.ee9a520";
1
+ export const DXOS_VERSION = "0.3.9-main.ef334cd";