@dxos/client-services 0.5.9-main.f099efe → 0.5.9-next.73dcc17

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.
@@ -30,7 +30,7 @@ __export(testing_exports, {
30
30
  sanitizeInvitation: () => sanitizeInvitation
31
31
  });
32
32
  module.exports = __toCommonJS(testing_exports);
33
- var import_chunk_JRDM7NQS = require("../../chunk-JRDM7NQS.cjs");
33
+ var import_chunk_LIWLWYC3 = require("../../chunk-LIWLWYC3.cjs");
34
34
  var import_credentials = require("@dxos/credentials");
35
35
  var import_keys = require("@dxos/keys");
36
36
  var import_async = require("@dxos/async");
@@ -227,7 +227,7 @@ var createInvitation = async (host, options) => {
227
227
  authMethod: import_services.Invitation.AuthMethod.NONE,
228
228
  ...options ?? {}
229
229
  };
230
- if (host instanceof import_chunk_JRDM7NQS.ServiceContext) {
230
+ if (host instanceof import_chunk_LIWLWYC3.ServiceContext) {
231
231
  return host.invitationsManager.createInvitation({
232
232
  kind: import_services.Invitation.Kind.SPACE,
233
233
  ...options
@@ -237,7 +237,7 @@ var createInvitation = async (host, options) => {
237
237
  };
238
238
  var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
239
239
  invitation = sanitizeInvitation(invitation);
240
- if (guest instanceof import_chunk_JRDM7NQS.ServiceContext) {
240
+ if (guest instanceof import_chunk_LIWLWYC3.ServiceContext) {
241
241
  return guest.invitationsManager.acceptInvitation({
242
242
  invitation,
243
243
  deviceProfile: guestDeviceProfile
@@ -247,7 +247,7 @@ var acceptInvitation = (guest, invitation, guestDeviceProfile) => {
247
247
  };
248
248
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/testing/test-builder.ts";
249
249
  var createServiceHost = (config, signalManagerContext) => {
250
- return new import_chunk_JRDM7NQS.ClientServicesHost({
250
+ return new import_chunk_LIWLWYC3.ClientServicesHost({
251
251
  config,
252
252
  signalManager: new import_messaging.MemorySignalManager(signalManagerContext),
253
253
  transportFactory: import_network_manager.MemoryTransportFactory
@@ -263,7 +263,7 @@ var createServiceContext = async ({ signalContext = new import_messaging.MemoryS
263
263
  });
264
264
  const level = (0, import_testing.createTestLevel)();
265
265
  await level.open();
266
- return new import_chunk_JRDM7NQS.ServiceContext(storage, level, networkManager, signalManager, {
266
+ return new import_chunk_LIWLWYC3.ServiceContext(storage, level, networkManager, signalManager, {
267
267
  invitationConnectionDefaultParams: {
268
268
  controlHeartbeatInterval: 200
269
269
  },
@@ -370,12 +370,12 @@ var TestPeer = class {
370
370
  });
371
371
  }
372
372
  get dataSpaceManager() {
373
- return this._props.dataSpaceManager ??= new import_chunk_JRDM7NQS.DataSpaceManager(this.spaceManager, this.metadataStore, this.keyring, this.identity, this.feedStore, this.echoHost, this.invitationsManager, this._opts.dataSpaceParams);
373
+ return this._props.dataSpaceManager ??= new import_chunk_LIWLWYC3.DataSpaceManager(this.spaceManager, this.metadataStore, this.keyring, this.identity, this.feedStore, this.echoHost, this.invitationsManager, this._opts.dataSpaceParams);
374
374
  }
375
375
  get invitationsManager() {
376
- return this._props.invitationsManager ??= new import_chunk_JRDM7NQS.InvitationsManager(new import_chunk_JRDM7NQS.InvitationsHandler(this.networkManager), (invitation) => {
376
+ return this._props.invitationsManager ??= new import_chunk_LIWLWYC3.InvitationsManager(new import_chunk_LIWLWYC3.InvitationsHandler(this.networkManager), (invitation) => {
377
377
  if (invitation.kind === import_services2.Invitation.Kind.SPACE) {
378
- return new import_chunk_JRDM7NQS.SpaceInvitationProtocol(this.dataSpaceManager, this.identity, this.keyring, invitation.spaceKey);
378
+ return new import_chunk_LIWLWYC3.SpaceInvitationProtocol(this.dataSpaceManager, this.identity, this.keyring, invitation.spaceKey);
379
379
  } else {
380
380
  throw new Error("not implemented");
381
381
  }
@@ -1 +1 @@
1
- {"version":3,"file":"identity-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,IAAI,aAAa,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGtG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,eAAe;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAJjB,gBAAgB,EAAE,eAAe,EACjC,QAAQ,EAAE,OAAO,EACjB,yBAAyB,EAAE,MAAM,gBAAgB,EACjD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,gBAAgB,CAAC,aAAY,eAAe,GAAG,SAAS,KAAK,QAAQ,IAAI,CAAC,aAAA;cAKpE,KAAK;IAOxB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;YAO9D,mBAAmB;IAO3B,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9E,aAAa,IAAI,MAAM,CAAC,qBAAqB,CAAC;IAS9C,OAAO,CAAC,YAAY;IAYd,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAO/D,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;YAYjF,+BAA+B;CAuC9C"}
1
+ {"version":3,"file":"identity-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,QAAQ,IAAI,aAAa,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGtG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,eAAe;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAJjB,gBAAgB,EAAE,eAAe,EACjC,QAAQ,EAAE,OAAO,EACjB,yBAAyB,EAAE,MAAM,gBAAgB,EACjD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,gBAAgB,CAAC,aAAY,eAAe,GAAG,SAAS,KAAK,QAAQ,IAAI,CAAC,aAAA;cAKpE,KAAK;IAOxB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;YAO9D,mBAAmB;IAO3B,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI9E,aAAa,IAAI,MAAM,CAAC,qBAAqB,CAAC;IAS9C,OAAO,CAAC,YAAY;IAYd,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAO/D,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;YAYjF,+BAA+B;CA6C9C"}
@@ -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":"AAIA,OAAO,EAAE,KAAK,EAAwD,MAAM,aAAa,CAAC;AAG1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAA0B,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE7F,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;AAGvC,OAAO,EACL,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,KAAK,IAAI,UAAU,EACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAK7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,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;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qBAEa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAiB;IAE7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/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,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAGrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA2E;IAEhH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAe;IAErD,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,aAAa,CAA6B;IAElD;;OAEG;IACI,KAAK,EAAE,KAAK,GAAG,SAAS,CAAa;IAE5C,SAAgB,YAAY,EAAE,yBAAyB,CAAC;IACxD,SAAgB,WAAW,cAAe;IAEnC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAM;gBAE5B,MAAM,EAAE,eAAe;IA+BnC,IACI,EAAE,iCAEL;IAED,IACI,GAAG,cAEN;IAED,IAAI,MAAM,YAET;IAED,IACI,KAAK,IAAI,UAAU,CAEtB;IAGD,IAAI,KAAK,UAER;IAED,IAAI,QAAQ,aAEX;IAED,IAAI,kBAAkB,uBAErB;IAED,IAAI,KAAK,2BAER;IAED,IAAI,mBAAmB,wBAEtB;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,IAAI,CAEtC;IAGD,OAAO,KAAK,cAAc,GAKzB;IAGK,IAAI;YAMI,KAAK;IAgBb,KAAK;YAIG,MAAM;IAmBd,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;IAuBrB,sBAAsB;YAqBd,gBAAgB;YAWhB,iCAAiC;YAyBjC,oBAAoB;IAiDlC,OAAO,CAAC,mBAAmB;IAoDrB,gBAAgB,CAAC,OAAO,EAAE,eAAe;IAWzC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IA2CpF,QAAQ;IAWR,UAAU;CAajB"}
@@ -1,9 +1,9 @@
1
- import type { Repo } from '@dxos/automerge/automerge-repo';
2
1
  import { type Context } from '@dxos/context';
2
+ import { type EchoHost } from '@dxos/echo-db';
3
3
  import type { PublicKey, SpaceId } from '@dxos/keys';
4
4
  import { CreateEpochRequest } from '@dxos/protocols/proto/dxos/client/services';
5
5
  export type MigrationContext = {
6
- repo: Repo;
6
+ echoHost: EchoHost;
7
7
  spaceId: SpaceId;
8
8
  /**
9
9
  * @deprecated Remove.
@@ -1 +1 @@
1
- {"version":3,"file":"epoch-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/epoch-migrations.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAWhE,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAGhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAe,OAAO,WAAW,gBAAgB,KAAG,QAAQ,eAAe,CA2FxG,CAAC"}
1
+ {"version":3,"file":"epoch-migrations.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/epoch-migrations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,eAAO,MAAM,iBAAiB,QAAe,OAAO,WAAW,gBAAgB,KAAG,QAAQ,eAAe,CA8GxG,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;AAG9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWxD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAFpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAQ7B,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB;IAmBnD,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvE,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IA6DpC,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,MAAM,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAmB7E,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAmBnE,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOxG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAMvE,gBAAgB;IAmB9B,OAAO,CAAC,eAAe;IA6CvB,OAAO,CAAC,gBAAgB;YASV,cAAc;CAS7B"}
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;AAG9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWxD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAFpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAQ7B,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB;IAmBnD,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvE,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IA6DpC,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,MAAM,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAmB7E,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAmBnE,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOxG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAMvE,gBAAgB;IAmB9B,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,gBAAgB;YASV,cAAc;CAS7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile-archive.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/profile-archive.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAG3D,eAAO,MAAM,oBAAoB,YAAa,cAAc,KAAG,UAAkC,CAAC;AAElG,eAAO,MAAM,oBAAoB,SAAU,UAAU,KAAG,cAAmC,CAAC;AAE5F,eAAO,MAAM,iBAAiB,wBAG3B;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,KAAG,QAAQ,cAAc,CAqCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,wBAIzB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,WACQ,cAAc,KACtB,QAAQ,IAAI,CA0Bd,CAAC"}
1
+ {"version":3,"file":"profile-archive.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/storage/profile-archive.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAG3D,eAAO,MAAM,oBAAoB,YAAa,cAAc,KAAG,UAAkC,CAAC;AAElG,eAAO,MAAM,oBAAoB,SAAU,UAAU,KAAG,cAAmC,CAAC;AAE5F,eAAO,MAAM,iBAAiB,wBAG3B;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,KAAG,QAAQ,cAAc,CAqCzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,wBAIzB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,WACQ,cAAc,KACtB,QAAQ,IAAI,CAwCd,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.5.9-main.f099efe";
1
+ export declare const DXOS_VERSION = "0.5.9-next.73dcc17";
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.5.9-main.f099efe",
3
+ "version": "0.5.9-next.73dcc17",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -23,45 +23,45 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "platform": "^1.3.6",
26
- "@dxos/async": "0.5.9-main.f099efe",
27
- "@dxos/client-protocol": "0.5.9-main.f099efe",
28
- "@dxos/automerge": "0.5.9-main.f099efe",
29
- "@dxos/config": "0.5.9-main.f099efe",
30
- "@dxos/context": "0.5.9-main.f099efe",
31
- "@dxos/codec-protobuf": "0.5.9-main.f099efe",
32
- "@dxos/credentials": "0.5.9-main.f099efe",
33
- "@dxos/crypto": "0.5.9-main.f099efe",
34
- "@dxos/debug": "0.5.9-main.f099efe",
35
- "@dxos/echo-db": "0.5.9-main.f099efe",
36
- "@dxos/echo-pipeline": "0.5.9-main.f099efe",
37
- "@dxos/echo-protocol": "0.5.9-main.f099efe",
38
- "@dxos/echo-schema": "0.5.9-main.f099efe",
39
- "@dxos/indexing": "0.5.9-main.f099efe",
40
- "@dxos/feed-store": "0.5.9-main.f099efe",
41
- "@dxos/keyring": "0.5.9-main.f099efe",
42
- "@dxos/invariant": "0.5.9-main.f099efe",
43
- "@dxos/keys": "0.5.9-main.f099efe",
44
- "@dxos/kv-store": "0.5.9-main.f099efe",
45
- "@dxos/lock-file": "0.5.9-main.f099efe",
46
- "@dxos/log": "0.5.9-main.f099efe",
47
- "@dxos/messaging": "0.5.9-main.f099efe",
48
- "@dxos/network-manager": "0.5.9-main.f099efe",
49
- "@dxos/protocols": "0.5.9-main.f099efe",
50
- "@dxos/node-std": "0.5.9-main.f099efe",
51
- "@dxos/random-access-storage": "0.5.9-main.f099efe",
52
- "@dxos/rpc": "0.5.9-main.f099efe",
53
- "@dxos/teleport": "0.5.9-main.f099efe",
54
- "@dxos/teleport-extension-gossip": "0.5.9-main.f099efe",
55
- "@dxos/timeframe": "0.5.9-main.f099efe",
56
- "@dxos/teleport-extension-object-sync": "0.5.9-main.f099efe",
57
- "@dxos/tracing": "0.5.9-main.f099efe",
58
- "@dxos/util": "0.5.9-main.f099efe",
59
- "@dxos/websocket-rpc": "0.5.9-main.f099efe"
26
+ "@dxos/async": "0.5.9-next.73dcc17",
27
+ "@dxos/automerge": "0.5.9-next.73dcc17",
28
+ "@dxos/client-protocol": "0.5.9-next.73dcc17",
29
+ "@dxos/codec-protobuf": "0.5.9-next.73dcc17",
30
+ "@dxos/context": "0.5.9-next.73dcc17",
31
+ "@dxos/config": "0.5.9-next.73dcc17",
32
+ "@dxos/credentials": "0.5.9-next.73dcc17",
33
+ "@dxos/crypto": "0.5.9-next.73dcc17",
34
+ "@dxos/debug": "0.5.9-next.73dcc17",
35
+ "@dxos/echo-protocol": "0.5.9-next.73dcc17",
36
+ "@dxos/echo-pipeline": "0.5.9-next.73dcc17",
37
+ "@dxos/echo-db": "0.5.9-next.73dcc17",
38
+ "@dxos/feed-store": "0.5.9-next.73dcc17",
39
+ "@dxos/echo-schema": "0.5.9-next.73dcc17",
40
+ "@dxos/indexing": "0.5.9-next.73dcc17",
41
+ "@dxos/invariant": "0.5.9-next.73dcc17",
42
+ "@dxos/keys": "0.5.9-next.73dcc17",
43
+ "@dxos/keyring": "0.5.9-next.73dcc17",
44
+ "@dxos/kv-store": "0.5.9-next.73dcc17",
45
+ "@dxos/lock-file": "0.5.9-next.73dcc17",
46
+ "@dxos/log": "0.5.9-next.73dcc17",
47
+ "@dxos/network-manager": "0.5.9-next.73dcc17",
48
+ "@dxos/messaging": "0.5.9-next.73dcc17",
49
+ "@dxos/node-std": "0.5.9-next.73dcc17",
50
+ "@dxos/protocols": "0.5.9-next.73dcc17",
51
+ "@dxos/rpc": "0.5.9-next.73dcc17",
52
+ "@dxos/teleport": "0.5.9-next.73dcc17",
53
+ "@dxos/random-access-storage": "0.5.9-next.73dcc17",
54
+ "@dxos/teleport-extension-gossip": "0.5.9-next.73dcc17",
55
+ "@dxos/teleport-extension-object-sync": "0.5.9-next.73dcc17",
56
+ "@dxos/timeframe": "0.5.9-next.73dcc17",
57
+ "@dxos/tracing": "0.5.9-next.73dcc17",
58
+ "@dxos/util": "0.5.9-next.73dcc17",
59
+ "@dxos/websocket-rpc": "0.5.9-next.73dcc17"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/platform": "^1.3.4",
63
63
  "@types/readable-stream": "^2.3.9",
64
- "@dxos/signal": "0.5.9-main.f099efe"
64
+ "@dxos/signal": "0.5.9-next.73dcc17"
65
65
  },
66
66
  "publishConfig": {
67
67
  "access": "public"
@@ -111,29 +111,35 @@ export class IdentityServiceImpl extends Resource implements IdentityService {
111
111
 
112
112
  const recordedDefaultSpaceTrigger = new Trigger();
113
113
 
114
- const allProcessed = safeAwaitAll(dataSpaceManager.spaces.values(), async (space) => {
115
- if (space.state === SpaceState.CLOSED) {
116
- await space.open();
117
-
118
- // Wait until the space is either READY or REQUIRES_MIGRATION.
119
- // NOTE: Space could potentially never initialize if the space data is corrupted.
120
- const requiresMigration = space.stateUpdate.waitForCondition(
121
- () => space.state === SpaceState.REQUIRES_MIGRATION,
122
- );
123
- await Promise.race([space.initializeDataPipeline(), requiresMigration]);
124
- }
125
- if (await dataSpaceManager.isDefaultSpace(space)) {
126
- if (foundDefaultSpace) {
127
- log.warn('Multiple default spaces found. Using the first one.', { duplicate: space.id });
128
- return;
114
+ const allProcessed = safeAwaitAll(
115
+ dataSpaceManager.spaces.values(),
116
+ async (space) => {
117
+ if (space.state === SpaceState.CLOSED) {
118
+ await space.open();
119
+
120
+ // Wait until the space is either READY or REQUIRES_MIGRATION.
121
+ // NOTE: Space could potentially never initialize if the space data is corrupted.
122
+ const requiresMigration = space.stateUpdate.waitForCondition(
123
+ () => space.state === SpaceState.REQUIRES_MIGRATION,
124
+ );
125
+ await Promise.race([space.initializeDataPipeline(), requiresMigration]);
129
126
  }
130
-
131
- foundDefaultSpace = true;
132
- await identity.updateDefaultSpace(space.id);
133
- recodedDefaultSpace = true;
134
- recordedDefaultSpaceTrigger.wake();
135
- }
136
- });
127
+ if (await dataSpaceManager.isDefaultSpace(space)) {
128
+ if (foundDefaultSpace) {
129
+ log.warn('Multiple default spaces found. Using the first one.', { duplicate: space.id });
130
+ return;
131
+ }
132
+
133
+ foundDefaultSpace = true;
134
+ await identity.updateDefaultSpace(space.id);
135
+ recodedDefaultSpace = true;
136
+ recordedDefaultSpaceTrigger.wake();
137
+ }
138
+ },
139
+ (err) => {
140
+ log.catch(err);
141
+ },
142
+ );
137
143
 
138
144
  // Wait for all spaces to be processed or until the default space is recorded.
139
145
  // If the timeout is reached, create a new default space.
@@ -413,6 +413,8 @@ export class DataSpace {
413
413
  // TODO(dmaretskyi): Close roots.
414
414
  // TODO(dmaretskyi): How do we handle changing to the next EPOCH?
415
415
  const root = await this._echoHost.openSpaceRoot(handle.url);
416
+
417
+ // NOTE: Make sure this assignment happens synchronously together with the state change.
416
418
  this._databaseRoot = root;
417
419
  if (root.getVersion() !== SpaceDocVersion.CURRENT) {
418
420
  if (this._state !== SpaceState.REQUIRES_MIGRATION) {
@@ -454,7 +456,7 @@ export class DataSpace {
454
456
  }
455
457
 
456
458
  const { newRoot } = await runEpochMigration(ctx, {
457
- repo: this._echoHost.automergeRepo,
459
+ echoHost: this._echoHost,
458
460
  spaceId: this.id,
459
461
  spaceKey: this.key,
460
462
  migration: options.migration,
@@ -2,27 +2,25 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { asyncTimeout } from '@dxos/async';
6
- import { next as am } from '@dxos/automerge/automerge';
7
- import type { Repo, AutomergeUrl } from '@dxos/automerge/automerge-repo';
8
- import { cancelWithContext, type Context } from '@dxos/context';
5
+ import type { AutomergeUrl } from '@dxos/automerge/automerge-repo';
6
+ import { type Context } from '@dxos/context';
9
7
  import {
10
8
  convertLegacyReferences,
11
9
  convertLegacySpaceRootDoc,
12
10
  findInlineObjectOfType,
13
11
  migrateDocument,
12
+ type EchoHost,
14
13
  } from '@dxos/echo-db';
15
- import { AutomergeDocumentLoaderImpl } from '@dxos/echo-pipeline';
16
- import type { SpaceDoc } from '@dxos/echo-protocol';
14
+ import { SpaceDocVersion, type SpaceDoc } from '@dxos/echo-protocol';
17
15
  import { TYPE_PROPERTIES } from '@dxos/echo-schema';
18
16
  import { invariant } from '@dxos/invariant';
19
17
  import type { PublicKey, SpaceId } from '@dxos/keys';
20
18
  import { log } from '@dxos/log';
21
19
  import { CreateEpochRequest } from '@dxos/protocols/proto/dxos/client/services';
22
- import { assignDeep } from '@dxos/util';
23
20
 
24
21
  export type MigrationContext = {
25
- repo: Repo;
22
+ echoHost: EchoHost;
23
+
26
24
  spaceId: SpaceId;
27
25
  /**
28
26
  * @deprecated Remove.
@@ -41,30 +39,34 @@ export type MigrationResult = {
41
39
  newRoot?: string;
42
40
  };
43
41
 
42
+ const LOAD_DOC_TIMEOUT = 10_000;
43
+
44
44
  export const runEpochMigration = async (ctx: Context, context: MigrationContext): Promise<MigrationResult> => {
45
45
  switch (context.migration) {
46
46
  case CreateEpochRequest.Migration.INIT_AUTOMERGE: {
47
- const document = context.repo.create();
48
- await context.repo.flush();
47
+ const document = context.echoHost.createDoc();
48
+ await context.echoHost.flush();
49
49
  return { newRoot: document.url };
50
50
  }
51
51
  case CreateEpochRequest.Migration.PRUNE_AUTOMERGE_ROOT_HISTORY: {
52
52
  if (!context.currentRoot) {
53
53
  throw new Error('Space does not have an automerge root');
54
54
  }
55
- const rootHandle = context.repo.find(context.currentRoot as AutomergeUrl);
56
- await cancelWithContext(ctx, asyncTimeout(rootHandle.whenReady(), 10_000));
55
+ const rootHandle = await context.echoHost.loadDoc(ctx, context.currentRoot as AutomergeUrl, {
56
+ timeout: LOAD_DOC_TIMEOUT,
57
+ });
57
58
 
58
- const newRoot = context.repo.create(rootHandle.docSync());
59
- await context.repo.flush();
59
+ const newRoot = context.echoHost.createDoc(rootHandle.docSync());
60
+ await context.echoHost.flush();
60
61
  return { newRoot: newRoot.url };
61
62
  }
62
63
  case CreateEpochRequest.Migration.FRAGMENT_AUTOMERGE_ROOT: {
63
64
  log.info('Fragmenting');
64
65
 
65
66
  const currentRootUrl = context.currentRoot;
66
- const rootHandle = context.repo.find<SpaceDoc>(currentRootUrl as any);
67
- await cancelWithContext(ctx, asyncTimeout(rootHandle.whenReady(), 10_000));
67
+ const rootHandle = await context.echoHost.loadDoc<SpaceDoc>(ctx, currentRootUrl as any, {
68
+ timeout: LOAD_DOC_TIMEOUT,
69
+ });
68
70
 
69
71
  // Find properties object.
70
72
  const objects = Object.entries((rootHandle.docSync() as SpaceDoc).objects!);
@@ -73,48 +75,65 @@ export const runEpochMigration = async (ctx: Context, context: MigrationContext)
73
75
  invariant(properties, 'Properties not found');
74
76
 
75
77
  // Create a new space doc with the properties object.
76
- const newSpaceDoc: SpaceDoc = { ...rootHandle.docSync(), objects: Object.fromEntries([properties]) };
77
- const newRoot = context.repo.create(newSpaceDoc);
78
+ const newRoot = context.echoHost.createDoc({
79
+ ...rootHandle.docSync(),
80
+ objects: Object.fromEntries([properties]),
81
+ });
78
82
  invariant(typeof newRoot.url === 'string' && newRoot.url.length > 0);
79
83
 
80
84
  // Create new automerge documents for all objects.
81
- const docLoader = new AutomergeDocumentLoaderImpl(context.spaceId, context.repo, context.spaceKey);
82
- await docLoader.loadSpaceRootDocHandle(ctx, { rootUrl: newRoot.url });
83
-
84
- otherObjects.forEach(([key, value]) => {
85
- const handle = docLoader.createDocumentForObject(key);
86
- handle.change((doc: any) => {
87
- assignDeep(doc, ['objects', key], value);
85
+ const newLinks: [string, AutomergeUrl][] = [];
86
+ for (const [id, objData] of otherObjects) {
87
+ const handle = context.echoHost.createDoc<SpaceDoc>({
88
+ version: SpaceDocVersion.CURRENT,
89
+ access: {
90
+ spaceKey: context.spaceKey.toHex(),
91
+ },
92
+ objects: {
93
+ [id]: objData,
94
+ },
88
95
  });
96
+ newLinks.push([id, handle.url]);
97
+ }
98
+ newRoot.change((doc: SpaceDoc) => {
99
+ doc.links ??= {};
100
+ for (const [id, url] of newLinks) {
101
+ doc.links[id] = url;
102
+ }
89
103
  });
90
104
 
91
- await context.repo.flush();
105
+ await context.echoHost.flush();
92
106
  return {
93
107
  newRoot: newRoot.url,
94
108
  };
95
109
  }
96
110
  case CreateEpochRequest.Migration.MIGRATE_REFERENCES_TO_DXN: {
97
111
  const currentRootUrl = context.currentRoot;
98
- const rootHandle = context.repo.find<SpaceDoc>(currentRootUrl as any);
99
- await cancelWithContext(ctx, asyncTimeout(rootHandle.whenReady(), 10_000));
112
+ const rootHandle = await context.echoHost.loadDoc<SpaceDoc>(ctx, currentRootUrl as any, {
113
+ timeout: LOAD_DOC_TIMEOUT,
114
+ });
100
115
  invariant(rootHandle.docSync(), 'Root doc not found');
101
116
 
102
117
  const newRootContent = await convertLegacySpaceRootDoc(structuredClone(rootHandle.docSync()!));
103
118
 
104
119
  for (const [id, url] of Object.entries(newRootContent.links ?? {})) {
105
- const handle = context.repo.find(url as any);
106
- await cancelWithContext(ctx, asyncTimeout(handle.whenReady(), 10_000));
107
- invariant(handle.docSync(), 'Doc not found');
108
- const newDoc = await convertLegacyReferences(structuredClone(handle.docSync()!));
109
- const migratedDoc = migrateDocument(handle.docSync(), newDoc);
110
- const newHandle = context.repo.import(am.save(migratedDoc));
111
- newRootContent.links![id] = newHandle.url;
120
+ try {
121
+ const handle = await context.echoHost.loadDoc(ctx, url as any, { timeout: LOAD_DOC_TIMEOUT });
122
+ invariant(handle.docSync());
123
+ const newDoc = await convertLegacyReferences(structuredClone(handle.docSync()!));
124
+ const migratedDoc = migrateDocument(handle.docSync(), newDoc);
125
+ const newHandle = context.echoHost.createDoc(migratedDoc, { preserveHistory: true });
126
+ newRootContent.links![id] = newHandle.url;
127
+ } catch (err) {
128
+ log.warn('Failed to migrate reference', { id, url, error: err });
129
+ delete newRootContent.links![id];
130
+ }
112
131
  }
113
132
 
114
133
  const migratedRoot = migrateDocument(rootHandle.docSync(), newRootContent);
115
- const newRoot = context.repo.import(am.save(migratedRoot));
134
+ const newRoot = context.echoHost.createDoc(migratedRoot, { preserveHistory: true });
116
135
 
117
- await context.repo.flush();
136
+ await context.echoHost.flush();
118
137
  return {
119
138
  newRoot: newRoot.url,
120
139
  };
@@ -124,7 +143,7 @@ export const runEpochMigration = async (ctx: Context, context: MigrationContext)
124
143
  invariant(context.newAutomergeRoot);
125
144
 
126
145
  // Defensive programming - it should be the responsibility of the caller to flush the new root.
127
- await context.repo.flush();
146
+ await context.echoHost.flush();
128
147
  return {
129
148
  newRoot: context.newAutomergeRoot,
130
149
  };
@@ -284,6 +284,8 @@ export class SpacesServiceImpl implements SpacesService {
284
284
  currentDataTimeframe: undefined,
285
285
  targetDataTimeframe: undefined,
286
286
  totalDataTimeframe: undefined,
287
+
288
+ spaceRootUrl: space.databaseRoot?.url,
287
289
  },
288
290
  members: Array.from(space.inner.spaceState.members.values()).map((member) => {
289
291
  const peers = space.presence.getPeersOnline().filter(({ identityKey }) => identityKey.equals(member.key));
@@ -69,8 +69,9 @@ export const importProfileData = async (
69
69
  },
70
70
  archive: ProfileArchive,
71
71
  ): Promise<void> => {
72
- const batch = level.batch();
72
+ let batch = level.batch();
73
73
 
74
+ let count = 0;
74
75
  for (const entry of archive.storage) {
75
76
  switch (entry.type) {
76
77
  case ProfileArchiveEntryType.FILE: {
@@ -91,7 +92,20 @@ export const importProfileData = async (
91
92
  default:
92
93
  throw new Error(`Invalid entry type: ${entry.type}`);
93
94
  }
95
+
96
+ if (++count % 1000 === 0) {
97
+ // Apparently indexedDB can't handle big batches.
98
+ await batch.write();
99
+ batch = level.batch();
100
+
101
+ log.info('importing', {
102
+ count,
103
+ total: archive.storage.length,
104
+ progress: `${((count / archive.storage.length) * 100).toFixed()}%`,
105
+ });
106
+ }
94
107
  }
95
108
 
109
+ log.info('committing changes..');
96
110
  await batch.write();
97
111
  };
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const DXOS_VERSION = "0.5.9-main.f099efe";
1
+ export const DXOS_VERSION = "0.5.9-next.73dcc17";