@dxos/client-services 0.5.1-next.2ad6c47 → 0.5.1-next.5e6b3f6

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 (49) hide show
  1. package/dist/lib/browser/{chunk-CMVTOS5E.mjs → chunk-5AW3X677.mjs} +107 -166
  2. package/dist/lib/browser/chunk-5AW3X677.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +6 -4
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +9 -7
  7. package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/{chunk-EAWN3LCD.cjs → chunk-6ABI276Y.cjs} +122 -177
  9. package/dist/lib/node/chunk-6ABI276Y.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +48 -46
  11. package/dist/lib/node/index.cjs.map +3 -3
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/packlets/testing/index.cjs +14 -12
  14. package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
  15. package/dist/types/src/packlets/services/service-context.d.ts +7 -9
  16. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  17. package/dist/types/src/packlets/services/service-host.d.ts +1 -2
  18. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  19. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +4 -3
  20. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  21. package/dist/types/src/packlets/spaces/data-space.d.ts +4 -3
  22. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  23. package/dist/types/src/packlets/storage/level.d.ts +1 -2
  24. package/dist/types/src/packlets/storage/level.d.ts.map +1 -1
  25. package/dist/types/src/packlets/testing/test-builder.d.ts +5 -3
  26. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  27. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  28. package/dist/types/src/version.d.ts +1 -1
  29. package/package.json +36 -35
  30. package/src/packlets/services/automerge-host.test.ts +6 -4
  31. package/src/packlets/services/service-context.test.ts +3 -3
  32. package/src/packlets/services/service-context.ts +13 -28
  33. package/src/packlets/services/service-host.test.ts +6 -0
  34. package/src/packlets/services/service-host.ts +9 -26
  35. package/src/packlets/spaces/data-space-manager.test.ts +4 -4
  36. package/src/packlets/spaces/data-space-manager.ts +8 -11
  37. package/src/packlets/spaces/data-space.ts +14 -18
  38. package/src/packlets/storage/level.ts +3 -2
  39. package/src/packlets/testing/test-builder.ts +10 -14
  40. package/src/packlets/vault/worker-runtime.ts +3 -1
  41. package/src/version.ts +1 -1
  42. package/dist/lib/browser/chunk-CMVTOS5E.mjs.map +0 -7
  43. package/dist/lib/node/chunk-EAWN3LCD.cjs.map +0 -7
  44. package/dist/types/src/packlets/indexing/index.d.ts +0 -2
  45. package/dist/types/src/packlets/indexing/index.d.ts.map +0 -1
  46. package/dist/types/src/packlets/indexing/util.d.ts +0 -11
  47. package/dist/types/src/packlets/indexing/util.d.ts.map +0 -1
  48. package/src/packlets/indexing/index.ts +0 -5
  49. package/src/packlets/indexing/util.ts +0 -32
@@ -3277,7 +3277,7 @@ var DataSpace = class {
3277
3277
  this._metadataStore = params.metadataStore;
3278
3278
  this._signingContext = params.signingContext;
3279
3279
  this._callbacks = params.callbacks ?? {};
3280
- this._automergeHost = params.automergeHost;
3280
+ this._echoHost = params.echoHost;
3281
3281
  this.authVerifier = new TrustedKeySetAuthVerifier({
3282
3282
  trustedKeysProvider: () => new ComplexSet3(PublicKey9.hash, Array.from(this._inner.spaceState.members.values()).filter((member) => !member.removed).map((member) => member.key)),
3283
3283
  update: this._inner.stateUpdate,
@@ -3289,7 +3289,7 @@ var DataSpace = class {
3289
3289
  state: SpaceState[this._state]
3290
3290
  }, {
3291
3291
  F: __dxlog_file11,
3292
- L: 140,
3292
+ L: 136,
3293
3293
  S: this,
3294
3294
  C: (f, a) => f(...a)
3295
3295
  });
@@ -3339,7 +3339,7 @@ var DataSpace = class {
3339
3339
  state: SpaceState[this._state]
3340
3340
  }, {
3341
3341
  F: __dxlog_file11,
3342
- L: 198,
3342
+ L: 194,
3343
3343
  S: this,
3344
3344
  C: (f, a) => f(...a)
3345
3345
  });
@@ -3357,7 +3357,7 @@ var DataSpace = class {
3357
3357
  state: SpaceState[this._state]
3358
3358
  }, {
3359
3359
  F: __dxlog_file11,
3360
- L: 212,
3360
+ L: 208,
3361
3361
  S: this,
3362
3362
  C: (f, a) => f(...a)
3363
3363
  });
@@ -3389,7 +3389,7 @@ var DataSpace = class {
3389
3389
  if (err instanceof CancelledError || err instanceof ContextDisposedError) {
3390
3390
  log9("data pipeline initialization cancelled", err, {
3391
3391
  F: __dxlog_file11,
3392
- L: 245,
3392
+ L: 241,
3393
3393
  S: this,
3394
3394
  C: (f, a) => f(...a)
3395
3395
  });
@@ -3397,7 +3397,7 @@ var DataSpace = class {
3397
3397
  }
3398
3398
  log9.error("Error initializing data pipeline", err, {
3399
3399
  F: __dxlog_file11,
3400
- L: 249,
3400
+ L: 245,
3401
3401
  S: this,
3402
3402
  C: (f, a) => f(...a)
3403
3403
  });
@@ -3406,7 +3406,7 @@ var DataSpace = class {
3406
3406
  state: SpaceState[this._state]
3407
3407
  }, {
3408
3408
  F: __dxlog_file11,
3409
- L: 251,
3409
+ L: 247,
3410
3410
  S: this,
3411
3411
  C: (f, a) => f(...a)
3412
3412
  });
@@ -3426,7 +3426,7 @@ var DataSpace = class {
3426
3426
  state: SpaceState[this._state]
3427
3427
  }, {
3428
3428
  F: __dxlog_file11,
3429
- L: 267,
3429
+ L: 263,
3430
3430
  S: this,
3431
3431
  C: (f, a) => f(...a)
3432
3432
  });
@@ -3436,7 +3436,7 @@ var DataSpace = class {
3436
3436
  await cancelWithContext2(this._ctx, this.automergeSpaceState.ensureEpochInitialized());
3437
3437
  log9("data pipeline ready", void 0, {
3438
3438
  F: __dxlog_file11,
3439
- L: 279,
3439
+ L: 275,
3440
3440
  S: this,
3441
3441
  C: (f, a) => f(...a)
3442
3442
  });
@@ -3446,7 +3446,7 @@ var DataSpace = class {
3446
3446
  state: SpaceState[this._state]
3447
3447
  }, {
3448
3448
  F: __dxlog_file11,
3449
- L: 283,
3449
+ L: 279,
3450
3450
  S: this,
3451
3451
  C: (f, a) => f(...a)
3452
3452
  });
@@ -3462,7 +3462,7 @@ var DataSpace = class {
3462
3462
  await this._createWritableFeeds();
3463
3463
  log9("writable feeds created", void 0, {
3464
3464
  F: __dxlog_file11,
3465
- L: 299,
3465
+ L: 295,
3466
3466
  S: this,
3467
3467
  C: (f, a) => f(...a)
3468
3468
  });
@@ -3525,12 +3525,12 @@ var DataSpace = class {
3525
3525
  rootUrl
3526
3526
  }, {
3527
3527
  F: __dxlog_file11,
3528
- L: 365,
3528
+ L: 361,
3529
3529
  S: this,
3530
3530
  C: (f, a) => f(...a)
3531
3531
  });
3532
- this._automergeHost._requestedDocs.add(rootUrl);
3533
- const handle = this._automergeHost.repo.find(rootUrl);
3532
+ this._echoHost.replicateDocument(rootUrl);
3533
+ const handle = this._echoHost.automergeRepo.find(rootUrl);
3534
3534
  queueMicrotask(async () => {
3535
3535
  try {
3536
3536
  await warnAfterTimeout(5e3, "Automerge root doc load timeout (DataSpace)", async () => {
@@ -3557,7 +3557,7 @@ var DataSpace = class {
3557
3557
  err
3558
3558
  }, {
3559
3559
  F: __dxlog_file11,
3560
- L: 388,
3560
+ L: 384,
3561
3561
  S: this,
3562
3562
  C: (f, a) => f(...a)
3563
3563
  });
@@ -3595,7 +3595,7 @@ var DataSpace = class {
3595
3595
  break;
3596
3596
  case CreateEpochRequest.Migration.INIT_AUTOMERGE:
3597
3597
  {
3598
- const document = this._automergeHost.repo.create();
3598
+ const document = this._echoHost.automergeRepo.create();
3599
3599
  epoch = {
3600
3600
  previousId: this._automergeSpaceState.lastEpoch?.id,
3601
3601
  number: (this._automergeSpaceState.lastEpoch?.subject.assertion.number ?? -1) + 1,
@@ -3607,12 +3607,12 @@ var DataSpace = class {
3607
3607
  case CreateEpochRequest.Migration.PRUNE_AUTOMERGE_ROOT_HISTORY:
3608
3608
  {
3609
3609
  const currentRootUrl = this._automergeSpaceState.rootUrl;
3610
- const rootHandle = this._automergeHost.repo.find(currentRootUrl);
3610
+ const rootHandle = this._echoHost.automergeRepo.find(currentRootUrl);
3611
3611
  await cancelWithContext2(this._ctx, asyncTimeout(rootHandle.whenReady(), 1e4));
3612
- const newRoot = this._automergeHost.repo.create(rootHandle.docSync());
3612
+ const newRoot = this._echoHost.automergeRepo.create(rootHandle.docSync());
3613
3613
  invariant10(typeof newRoot.url === "string" && newRoot.url.length > 0, void 0, {
3614
3614
  F: __dxlog_file11,
3615
- L: 438,
3615
+ L: 434,
3616
3616
  S: this,
3617
3617
  A: [
3618
3618
  "typeof newRoot.url === 'string' && newRoot.url.length > 0",
@@ -3631,19 +3631,19 @@ var DataSpace = class {
3631
3631
  {
3632
3632
  log9.info("Fragmenting", void 0, {
3633
3633
  F: __dxlog_file11,
3634
- L: 450,
3634
+ L: 446,
3635
3635
  S: this,
3636
3636
  C: (f, a) => f(...a)
3637
3637
  });
3638
3638
  const currentRootUrl = this._automergeSpaceState.rootUrl;
3639
- const rootHandle = this._automergeHost.repo.find(currentRootUrl);
3639
+ const rootHandle = this._echoHost.automergeRepo.find(currentRootUrl);
3640
3640
  await cancelWithContext2(this._ctx, asyncTimeout(rootHandle.whenReady(), 1e4));
3641
3641
  const objects = Object.entries(rootHandle.docSync().objects);
3642
3642
  const properties = objects.find(([_, value]) => value.system.type?.itemId === TYPE_PROPERTIES);
3643
3643
  const otherObjects = objects.filter(([key]) => key !== properties?.[0]);
3644
3644
  invariant10(properties, "Properties not found", {
3645
3645
  F: __dxlog_file11,
3646
- L: 460,
3646
+ L: 456,
3647
3647
  S: this,
3648
3648
  A: [
3649
3649
  "properties",
@@ -3656,17 +3656,17 @@ var DataSpace = class {
3656
3656
  properties
3657
3657
  ])
3658
3658
  };
3659
- const newRoot = this._automergeHost.repo.create(newSpaceDoc);
3659
+ const newRoot = this._echoHost.automergeRepo.create(newSpaceDoc);
3660
3660
  invariant10(typeof newRoot.url === "string" && newRoot.url.length > 0, void 0, {
3661
3661
  F: __dxlog_file11,
3662
- L: 465,
3662
+ L: 461,
3663
3663
  S: this,
3664
3664
  A: [
3665
3665
  "typeof newRoot.url === 'string' && newRoot.url.length > 0",
3666
3666
  ""
3667
3667
  ]
3668
3668
  });
3669
- const docLoader = new AutomergeDocumentLoaderImpl(this.key, this._automergeHost.repo);
3669
+ const docLoader = new AutomergeDocumentLoaderImpl(this.key, this._echoHost.automergeRepo);
3670
3670
  await docLoader.loadSpaceRootDocHandle(this._ctx, {
3671
3671
  rootUrl: newRoot.url
3672
3672
  });
@@ -3728,7 +3728,7 @@ var DataSpace = class {
3728
3728
  state: SpaceState[this._state]
3729
3729
  }, {
3730
3730
  F: __dxlog_file11,
3731
- L: 531,
3731
+ L: 527,
3732
3732
  S: this,
3733
3733
  C: (f, a) => f(...a)
3734
3734
  });
@@ -3878,13 +3878,13 @@ var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/s
3878
3878
  var PRESENCE_ANNOUNCE_INTERVAL = 1e4;
3879
3879
  var PRESENCE_OFFLINE_TIMEOUT = 2e4;
3880
3880
  var DataSpaceManager = class {
3881
- constructor(_spaceManager, _metadataStore, _keyring, _signingContext, _feedStore, _automergeHost, _invitationsManager, params) {
3881
+ constructor(_spaceManager, _metadataStore, _keyring, _signingContext, _feedStore, _echoHost, _invitationsManager, params) {
3882
3882
  this._spaceManager = _spaceManager;
3883
3883
  this._metadataStore = _metadataStore;
3884
3884
  this._keyring = _keyring;
3885
3885
  this._signingContext = _signingContext;
3886
3886
  this._feedStore = _feedStore;
3887
- this._automergeHost = _automergeHost;
3887
+ this._echoHost = _echoHost;
3888
3888
  this._invitationsManager = _invitationsManager;
3889
3889
  this._ctx = new Context9();
3890
3890
  this.updated = new Event7();
@@ -3902,7 +3902,7 @@ var DataSpaceManager = class {
3902
3902
  async open() {
3903
3903
  log10("open", void 0, {
3904
3904
  F: __dxlog_file12,
3905
- L: 101,
3905
+ L: 102,
3906
3906
  S: this,
3907
3907
  C: (f, a) => f(...a)
3908
3908
  });
@@ -3910,7 +3910,7 @@ var DataSpaceManager = class {
3910
3910
  id: this._instanceId
3911
3911
  }), {
3912
3912
  F: __dxlog_file12,
3913
- L: 102,
3913
+ L: 103,
3914
3914
  S: this,
3915
3915
  C: (f, a) => f(...a)
3916
3916
  });
@@ -3918,7 +3918,7 @@ var DataSpaceManager = class {
3918
3918
  spaces: this._metadataStore.spaces.length
3919
3919
  }, {
3920
3920
  F: __dxlog_file12,
3921
- L: 103,
3921
+ L: 104,
3922
3922
  S: this,
3923
3923
  C: (f, a) => f(...a)
3924
3924
  });
@@ -3928,7 +3928,7 @@ var DataSpaceManager = class {
3928
3928
  spaceMetadata
3929
3929
  }, {
3930
3930
  F: __dxlog_file12,
3931
- L: 107,
3931
+ L: 108,
3932
3932
  S: this,
3933
3933
  C: (f, a) => f(...a)
3934
3934
  });
@@ -3939,7 +3939,7 @@ var DataSpaceManager = class {
3939
3939
  err
3940
3940
  }, {
3941
3941
  F: __dxlog_file12,
3942
- L: 110,
3942
+ L: 111,
3943
3943
  S: this,
3944
3944
  C: (f, a) => f(...a)
3945
3945
  });
@@ -3956,7 +3956,7 @@ var DataSpaceManager = class {
3956
3956
  id: this._instanceId
3957
3957
  }), {
3958
3958
  F: __dxlog_file12,
3959
- L: 123,
3959
+ L: 124,
3960
3960
  S: this,
3961
3961
  C: (f, a) => f(...a)
3962
3962
  });
@@ -3964,7 +3964,7 @@ var DataSpaceManager = class {
3964
3964
  async close() {
3965
3965
  log10("close", void 0, {
3966
3966
  F: __dxlog_file12,
3967
- L: 128,
3967
+ L: 129,
3968
3968
  S: this,
3969
3969
  C: (f, a) => f(...a)
3970
3970
  });
@@ -3980,7 +3980,7 @@ var DataSpaceManager = class {
3980
3980
  async createSpace() {
3981
3981
  invariant11(this._isOpen, "Not open.", {
3982
3982
  F: __dxlog_file12,
3983
- L: 141,
3983
+ L: 142,
3984
3984
  S: this,
3985
3985
  A: [
3986
3986
  "this._isOpen",
@@ -4001,23 +4001,18 @@ var DataSpaceManager = class {
4001
4001
  spaceKey
4002
4002
  }, {
4003
4003
  F: __dxlog_file12,
4004
- L: 153,
4004
+ L: 154,
4005
4005
  S: this,
4006
4006
  C: (f, a) => f(...a)
4007
4007
  });
4008
- const automergeRoot = this._automergeHost.repo.create();
4009
- automergeRoot.change((doc) => {
4010
- doc.access = {
4011
- spaceKey: spaceKey.toHex()
4012
- };
4013
- });
4008
+ const automergeRootUrl = await this._echoHost.createSpaceRoot(spaceKey);
4014
4009
  const space = await this._constructSpace(metadata);
4015
- const credentials = await spaceGenesis(this._keyring, this._signingContext, space.inner, automergeRoot.url);
4010
+ const credentials = await spaceGenesis(this._keyring, this._signingContext, space.inner, automergeRootUrl);
4016
4011
  await this._metadataStore.addSpace(metadata);
4017
4012
  const memberCredential = credentials[1];
4018
4013
  invariant11(getCredentialAssertion2(memberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
4019
4014
  F: __dxlog_file12,
4020
- L: 166,
4015
+ L: 163,
4021
4016
  S: this,
4022
4017
  A: [
4023
4018
  "getCredentialAssertion(memberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
@@ -4035,13 +4030,13 @@ var DataSpaceManager = class {
4035
4030
  opts
4036
4031
  }, {
4037
4032
  F: __dxlog_file12,
4038
- L: 178,
4033
+ L: 175,
4039
4034
  S: this,
4040
4035
  C: (f, a) => f(...a)
4041
4036
  });
4042
4037
  invariant11(this._isOpen, "Not open.", {
4043
4038
  F: __dxlog_file12,
4044
- L: 179,
4039
+ L: 176,
4045
4040
  S: this,
4046
4041
  A: [
4047
4042
  "this._isOpen",
@@ -4050,7 +4045,7 @@ var DataSpaceManager = class {
4050
4045
  });
4051
4046
  invariant11(!this._spaces.has(opts.spaceKey), "Space already exists.", {
4052
4047
  F: __dxlog_file12,
4053
- L: 180,
4048
+ L: 177,
4054
4049
  S: this,
4055
4050
  A: [
4056
4051
  "!this._spaces.has(opts.spaceKey)",
@@ -4085,7 +4080,7 @@ var DataSpaceManager = class {
4085
4080
  metadata
4086
4081
  }, {
4087
4082
  F: __dxlog_file12,
4088
- L: 213,
4083
+ L: 210,
4089
4084
  S: this,
4090
4085
  C: (f, a) => f(...a)
4091
4086
  });
@@ -4117,13 +4112,13 @@ var DataSpaceManager = class {
4117
4112
  remotePeerId: session.remotePeerId
4118
4113
  }));
4119
4114
  session.addExtension("dxos.mesh.teleport.notarization", dataSpace.notarizationPlugin.createExtension());
4120
- this._automergeHost.authorizeDevice(space.key, session.remotePeerId);
4121
- session.addExtension("dxos.mesh.teleport.automerge", this._automergeHost.createExtension());
4115
+ this._echoHost.authorizeDevice(space.key, session.remotePeerId);
4116
+ session.addExtension("dxos.mesh.teleport.automerge", this._echoHost.createReplicationExtension());
4122
4117
  },
4123
4118
  onAuthFailure: () => {
4124
4119
  log10.warn("auth failure", void 0, {
4125
4120
  F: __dxlog_file12,
4126
- L: 250,
4121
+ L: 247,
4127
4122
  S: this,
4128
4123
  C: (f, a) => f(...a)
4129
4124
  });
@@ -4143,6 +4138,7 @@ var DataSpaceManager = class {
4143
4138
  presence,
4144
4139
  keyring: this._keyring,
4145
4140
  feedStore: this._feedStore,
4141
+ echoHost: this._echoHost,
4146
4142
  signingContext: this._signingContext,
4147
4143
  callbacks: {
4148
4144
  beforeReady: async () => {
@@ -4150,7 +4146,7 @@ var DataSpaceManager = class {
4150
4146
  space: space.key
4151
4147
  }, {
4152
4148
  F: __dxlog_file12,
4153
- L: 271,
4149
+ L: 269,
4154
4150
  S: this,
4155
4151
  C: (f, a) => f(...a)
4156
4152
  });
@@ -4161,7 +4157,7 @@ var DataSpaceManager = class {
4161
4157
  open: this._isOpen
4162
4158
  }, {
4163
4159
  F: __dxlog_file12,
4164
- L: 274,
4160
+ L: 272,
4165
4161
  S: this,
4166
4162
  C: (f, a) => f(...a)
4167
4163
  });
@@ -4177,14 +4173,13 @@ var DataSpaceManager = class {
4177
4173
  space: space.key
4178
4174
  }, {
4179
4175
  F: __dxlog_file12,
4180
- L: 281,
4176
+ L: 279,
4181
4177
  S: this,
4182
4178
  C: (f, a) => f(...a)
4183
4179
  });
4184
4180
  }
4185
4181
  },
4186
- cache: metadata.cache,
4187
- automergeHost: this._automergeHost
4182
+ cache: metadata.cache
4188
4183
  });
4189
4184
  if (metadata.state !== SpaceState2.INACTIVE) {
4190
4185
  await dataSpace.open();
@@ -4469,9 +4464,9 @@ import { Trigger as Trigger5 } from "@dxos/async";
4469
4464
  import { Context as Context10, Resource } from "@dxos/context";
4470
4465
  import { getCredentialAssertion as getCredentialAssertion3 } from "@dxos/credentials";
4471
4466
  import { failUndefined as failUndefined2 } from "@dxos/debug";
4472
- import { AutomergeHost, MetadataStore, SnapshotStore, SpaceManager, valueEncoding } from "@dxos/echo-pipeline";
4467
+ import { EchoHost } from "@dxos/echo-db";
4468
+ import { MetadataStore, SnapshotStore, SpaceManager, valueEncoding } from "@dxos/echo-pipeline";
4473
4469
  import { FeedFactory, FeedStore } from "@dxos/feed-store";
4474
- import { IndexMetadataStore, IndexStore, Indexer, createStorageCallbacks } from "@dxos/indexing";
4475
4470
  import { invariant as invariant13 } from "@dxos/invariant";
4476
4471
  import { Keyring } from "@dxos/keyring";
4477
4472
  import { PublicKey as PublicKey11 } from "@dxos/keys";
@@ -4481,37 +4476,6 @@ import { Invitation as Invitation7 } from "@dxos/protocols/proto/dxos/client/ser
4481
4476
  import { BlobStore } from "@dxos/teleport-extension-object-sync";
4482
4477
  import { trace as Trace2 } from "@dxos/tracing";
4483
4478
  import { safeInstanceof } from "@dxos/util";
4484
-
4485
- // packages/sdk/client-services/src/packlets/indexing/util.ts
4486
- import { getHeads } from "@dxos/automerge/automerge";
4487
- import { idCodec } from "@dxos/protocols";
4488
- var createSelectedDocumentsIterator = (automergeHost) => (
4489
- /**
4490
- * Get object data blobs from Automerge Repo by ids.
4491
- * @param ids
4492
- */
4493
- // TODO(mykola): Unload automerge handles after usage.
4494
- async function* loadDocuments(ids) {
4495
- for (const id of ids) {
4496
- const { documentId, objectId } = idCodec.decode(id);
4497
- const handle = automergeHost.repo.handles[documentId] ?? automergeHost.repo.find(documentId);
4498
- if (!handle.isReady()) {
4499
- await handle.whenReady();
4500
- }
4501
- const doc = handle.docSync();
4502
- const hash = getHeads(doc).join("");
4503
- yield doc.objects?.[objectId] ? [
4504
- {
4505
- id,
4506
- object: doc.objects[objectId],
4507
- currentHash: hash
4508
- }
4509
- ] : [];
4510
- }
4511
- }
4512
- );
4513
-
4514
- // packages/sdk/client-services/src/packlets/services/service-context.ts
4515
4479
  function _ts_decorate6(decorators, target, key, desc) {
4516
4480
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4517
4481
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -4556,24 +4520,9 @@ var ServiceContext = class extends Resource {
4556
4520
  snapshotStore: this.snapshotStore
4557
4521
  });
4558
4522
  this.identityManager = new IdentityManager(this.metadataStore, this.keyring, this.feedStore, this.spaceManager, this._runtimeParams);
4559
- this.indexMetadata = new IndexMetadataStore({
4560
- db: level.sublevel("index-metadata")
4561
- });
4562
- this.automergeHost = new AutomergeHost({
4563
- directory: storage.createDirectory("automerge"),
4564
- db: level.sublevel("automerge"),
4565
- storageCallbacks: createStorageCallbacks({
4566
- host: () => this.automergeHost,
4567
- metadata: this.indexMetadata
4568
- })
4569
- });
4570
- this.indexer = new Indexer({
4571
- db: this.level,
4572
- indexStore: new IndexStore({
4573
- db: level.sublevel("index-storage")
4574
- }),
4575
- metadataStore: this.indexMetadata,
4576
- loadDocuments: createSelectedDocumentsIterator(this.automergeHost)
4523
+ this.echoHost = new EchoHost({
4524
+ kv: this.level,
4525
+ storage: this.storage
4577
4526
  });
4578
4527
  this.invitations = new InvitationsHandler(this.networkManager);
4579
4528
  this.invitationsManager = new InvitationsManager(this.invitations, (invitation) => this.getInvitationHandler(invitation), this.metadataStore);
@@ -4583,7 +4532,7 @@ var ServiceContext = class extends Resource {
4583
4532
  await this._checkStorageVersion();
4584
4533
  log12("opening...", void 0, {
4585
4534
  F: __dxlog_file14,
4586
- L: 164,
4535
+ L: 150,
4587
4536
  S: this,
4588
4537
  C: (f, a) => f(...a)
4589
4538
  });
@@ -4591,13 +4540,13 @@ var ServiceContext = class extends Resource {
4591
4540
  id: this._instanceId
4592
4541
  }), {
4593
4542
  F: __dxlog_file14,
4594
- L: 165,
4543
+ L: 151,
4595
4544
  S: this,
4596
4545
  C: (f, a) => f(...a)
4597
4546
  });
4598
4547
  await this.signalManager.open();
4599
4548
  await this.networkManager.open();
4600
- await this.automergeHost.open();
4549
+ await this.echoHost.open(ctx);
4601
4550
  await this.metadataStore.load();
4602
4551
  await this.spaceManager.open();
4603
4552
  await this.identityManager.open(ctx);
@@ -4609,7 +4558,7 @@ var ServiceContext = class extends Resource {
4609
4558
  count: loadedInvitations.invitations?.length
4610
4559
  }, {
4611
4560
  F: __dxlog_file14,
4612
- L: 178,
4561
+ L: 164,
4613
4562
  S: this,
4614
4563
  C: (f, a) => f(...a)
4615
4564
  });
@@ -4617,39 +4566,38 @@ var ServiceContext = class extends Resource {
4617
4566
  id: this._instanceId
4618
4567
  }), {
4619
4568
  F: __dxlog_file14,
4620
- L: 180,
4569
+ L: 166,
4621
4570
  S: this,
4622
4571
  C: (f, a) => f(...a)
4623
4572
  });
4624
4573
  log12("opened", void 0, {
4625
4574
  F: __dxlog_file14,
4626
- L: 181,
4575
+ L: 167,
4627
4576
  S: this,
4628
4577
  C: (f, a) => f(...a)
4629
4578
  });
4630
4579
  }
4631
- async _close() {
4580
+ async _close(ctx) {
4632
4581
  log12("closing...", void 0, {
4633
4582
  F: __dxlog_file14,
4634
- L: 185,
4583
+ L: 171,
4635
4584
  S: this,
4636
4585
  C: (f, a) => f(...a)
4637
4586
  });
4638
4587
  if (this._deviceSpaceSync && this.identityManager.identity) {
4639
4588
  await this.identityManager.identity.space.spaceState.removeCredentialProcessor(this._deviceSpaceSync);
4640
4589
  }
4641
- await this.automergeHost.close();
4642
4590
  await this.dataSpaceManager?.close();
4643
4591
  await this.identityManager.close();
4644
4592
  await this.spaceManager.close();
4645
4593
  await this.feedStore.close();
4594
+ await this.metadataStore.close();
4595
+ await this.echoHost.close(ctx);
4646
4596
  await this.networkManager.close();
4647
4597
  await this.signalManager.close();
4648
- await this.metadataStore.close();
4649
- await this.indexer.destroy();
4650
4598
  log12("closed", void 0, {
4651
4599
  F: __dxlog_file14,
4652
- L: 198,
4600
+ L: 183,
4653
4601
  S: this,
4654
4602
  C: (f, a) => f(...a)
4655
4603
  });
@@ -4663,7 +4611,7 @@ var ServiceContext = class extends Resource {
4663
4611
  const factory = this._handlerFactories.get(invitation.kind);
4664
4612
  invariant13(factory, `Unknown invitation kind: ${invitation.kind}`, {
4665
4613
  F: __dxlog_file14,
4666
- L: 209,
4614
+ L: 194,
4667
4615
  S: this,
4668
4616
  A: [
4669
4617
  "factory",
@@ -4695,7 +4643,7 @@ var ServiceContext = class extends Resource {
4695
4643
  async _initialize(ctx) {
4696
4644
  log12("initializing spaces...", void 0, {
4697
4645
  F: __dxlog_file14,
4698
- L: 240,
4646
+ L: 225,
4699
4647
  S: this,
4700
4648
  C: (f, a) => f(...a)
4701
4649
  });
@@ -4713,12 +4661,12 @@ var ServiceContext = class extends Resource {
4713
4661
  });
4714
4662
  }
4715
4663
  };
4716
- this.dataSpaceManager = new DataSpaceManager(this.spaceManager, this.metadataStore, this.keyring, signingContext, this.feedStore, this.automergeHost, this.invitationsManager, this._runtimeParams);
4664
+ this.dataSpaceManager = new DataSpaceManager(this.spaceManager, this.metadataStore, this.keyring, signingContext, this.feedStore, this.echoHost, this.invitationsManager, this._runtimeParams);
4717
4665
  await this.dataSpaceManager.open();
4718
4666
  this._handlerFactories.set(Invitation7.Kind.SPACE, (invitation) => {
4719
4667
  invariant13(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
4720
4668
  F: __dxlog_file14,
4721
- L: 265,
4669
+ L: 250,
4722
4670
  S: this,
4723
4671
  A: [
4724
4672
  "this.dataSpaceManager",
@@ -4742,7 +4690,7 @@ var ServiceContext = class extends Resource {
4742
4690
  details: assertion
4743
4691
  }, {
4744
4692
  F: __dxlog_file14,
4745
- L: 281,
4693
+ L: 266,
4746
4694
  S: this,
4747
4695
  C: (f, a) => f(...a)
4748
4696
  });
@@ -4753,7 +4701,7 @@ var ServiceContext = class extends Resource {
4753
4701
  details: assertion
4754
4702
  }, {
4755
4703
  F: __dxlog_file14,
4756
- L: 285,
4704
+ L: 270,
4757
4705
  S: this,
4758
4706
  C: (f, a) => f(...a)
4759
4707
  });
@@ -4764,7 +4712,7 @@ var ServiceContext = class extends Resource {
4764
4712
  details: assertion
4765
4713
  }, {
4766
4714
  F: __dxlog_file14,
4767
- L: 290,
4715
+ L: 275,
4768
4716
  S: this,
4769
4717
  C: (f, a) => f(...a)
4770
4718
  });
@@ -4775,7 +4723,7 @@ var ServiceContext = class extends Resource {
4775
4723
  } catch (err) {
4776
4724
  log12.catch(err, void 0, {
4777
4725
  F: __dxlog_file14,
4778
- L: 296,
4726
+ L: 281,
4779
4727
  S: this,
4780
4728
  C: (f, a) => f(...a)
4781
4729
  });
@@ -4829,7 +4777,7 @@ import { SpaceMember as SpaceMember4 } from "@dxos/protocols/proto/dxos/client/s
4829
4777
  import { TRACE_PROCESSOR } from "@dxos/tracing";
4830
4778
 
4831
4779
  // packages/sdk/client-services/src/version.ts
4832
- var DXOS_VERSION = "0.5.1-next.2ad6c47";
4780
+ var DXOS_VERSION = "0.5.1-next.5e6b3f6";
4833
4781
 
4834
4782
  // packages/sdk/client-services/src/packlets/services/platform.ts
4835
4783
  import { Platform } from "@dxos/protocols/proto/dxos/client/services";
@@ -5073,9 +5021,8 @@ import { jsonKeyReplacer as jsonKeyReplacer2, nonNullable } from "@dxos/util";
5073
5021
  import { Event as Event9, synchronized as synchronized3 } from "@dxos/async";
5074
5022
  import { clientServiceBundle, defaultKey, Properties } from "@dxos/client-protocol";
5075
5023
  import { Context as Context11 } from "@dxos/context";
5076
- import { DataServiceImpl, encodeReference } from "@dxos/echo-pipeline";
5024
+ import { encodeReference } from "@dxos/echo-protocol";
5077
5025
  import { getTypeReference } from "@dxos/echo-schema";
5078
- import { QueryServiceImpl } from "@dxos/indexing";
5079
5026
  import { invariant as invariant16 } from "@dxos/invariant";
5080
5027
  import { PublicKey as PublicKey14 } from "@dxos/keys";
5081
5028
  import { log as log16 } from "@dxos/log";
@@ -5513,13 +5460,13 @@ var toStorageType = (type) => {
5513
5460
  };
5514
5461
 
5515
5462
  // packages/sdk/client-services/src/packlets/storage/level.ts
5516
- import { Level } from "level";
5517
5463
  import path from "@dxos/node-std/path";
5518
5464
  import { PublicKey as PublicKey13 } from "@dxos/keys";
5465
+ import { createLevel as createKV } from "@dxos/kv-store";
5519
5466
  var createLevel = async (config) => {
5520
5467
  const persistent = isPersistent(config);
5521
5468
  const storagePath = persistent ? path.join(getRootPath(config), "level") : `/tmp/dxos-${PublicKey13.random().toHex()}`;
5522
- const level = new Level(storagePath);
5469
+ const level = createKV(storagePath);
5523
5470
  await level.open();
5524
5471
  return level;
5525
5472
  };
@@ -5682,7 +5629,7 @@ var ClientServicesHost = class {
5682
5629
  initialize({ config, ...options }) {
5683
5630
  invariant16(!this._open, "service host is open", {
5684
5631
  F: __dxlog_file19,
5685
- L: 198,
5632
+ L: 189,
5686
5633
  S: this,
5687
5634
  A: [
5688
5635
  "!this._open",
@@ -5691,14 +5638,14 @@ var ClientServicesHost = class {
5691
5638
  });
5692
5639
  log16("initializing...", void 0, {
5693
5640
  F: __dxlog_file19,
5694
- L: 199,
5641
+ L: 190,
5695
5642
  S: this,
5696
5643
  C: (f, a) => f(...a)
5697
5644
  });
5698
5645
  if (config) {
5699
5646
  invariant16(!this._config, "config already set", {
5700
5647
  F: __dxlog_file19,
5701
- L: 202,
5648
+ L: 193,
5702
5649
  S: this,
5703
5650
  A: [
5704
5651
  "!this._config",
@@ -5713,7 +5660,7 @@ var ClientServicesHost = class {
5713
5660
  if (!options.signalManager) {
5714
5661
  log16.warn("running signaling without telemetry metadata.", void 0, {
5715
5662
  F: __dxlog_file19,
5716
- L: 210,
5663
+ L: 201,
5717
5664
  S: this,
5718
5665
  C: (f, a) => f(...a)
5719
5666
  });
@@ -5724,7 +5671,7 @@ var ClientServicesHost = class {
5724
5671
  this._signalManager = signalManager;
5725
5672
  invariant16(!this._networkManager, "network manager already set", {
5726
5673
  F: __dxlog_file19,
5727
- L: 221,
5674
+ L: 212,
5728
5675
  S: this,
5729
5676
  A: [
5730
5677
  "!this._networkManager",
@@ -5738,7 +5685,7 @@ var ClientServicesHost = class {
5738
5685
  });
5739
5686
  log16("initialized", void 0, {
5740
5687
  F: __dxlog_file19,
5741
- L: 228,
5688
+ L: 219,
5742
5689
  S: this,
5743
5690
  C: (f, a) => f(...a)
5744
5691
  });
@@ -5752,13 +5699,13 @@ var ClientServicesHost = class {
5752
5699
  id: traceId
5753
5700
  }), {
5754
5701
  F: __dxlog_file19,
5755
- L: 239,
5702
+ L: 230,
5756
5703
  S: this,
5757
5704
  C: (f, a) => f(...a)
5758
5705
  });
5759
5706
  invariant16(this._config, "config not set", {
5760
5707
  F: __dxlog_file19,
5761
- L: 241,
5708
+ L: 232,
5762
5709
  S: this,
5763
5710
  A: [
5764
5711
  "this._config",
@@ -5767,7 +5714,7 @@ var ClientServicesHost = class {
5767
5714
  });
5768
5715
  invariant16(this._storage, "storage not set", {
5769
5716
  F: __dxlog_file19,
5770
- L: 242,
5717
+ L: 233,
5771
5718
  S: this,
5772
5719
  A: [
5773
5720
  "this._storage",
@@ -5776,7 +5723,7 @@ var ClientServicesHost = class {
5776
5723
  });
5777
5724
  invariant16(this._signalManager, "signal manager not set", {
5778
5725
  F: __dxlog_file19,
5779
- L: 243,
5726
+ L: 234,
5780
5727
  S: this,
5781
5728
  A: [
5782
5729
  "this._signalManager",
@@ -5785,7 +5732,7 @@ var ClientServicesHost = class {
5785
5732
  });
5786
5733
  invariant16(this._networkManager, "network manager not set", {
5787
5734
  F: __dxlog_file19,
5788
- L: 244,
5735
+ L: 235,
5789
5736
  S: this,
5790
5737
  A: [
5791
5738
  "this._networkManager",
@@ -5797,22 +5744,17 @@ var ClientServicesHost = class {
5797
5744
  lockKey: this._resourceLock?.lockKey
5798
5745
  }, {
5799
5746
  F: __dxlog_file19,
5800
- L: 247,
5747
+ L: 238,
5801
5748
  S: this,
5802
5749
  C: (f, a) => f(...a)
5803
5750
  });
5751
+ await this._resourceLock?.acquire();
5804
5752
  if (!this._level) {
5805
5753
  this._level = await createLevel(this._config.get("runtime.client.storage", {}));
5806
5754
  }
5807
5755
  await this._level.open();
5808
- await this._resourceLock?.acquire();
5809
5756
  await this._loggingService.open();
5810
5757
  this._serviceContext = new ServiceContext(this._storage, this._level, this._networkManager, this._signalManager, this._runtimeParams);
5811
- this._queryService = new QueryServiceImpl({
5812
- indexer: this._serviceContext.indexer,
5813
- automergeHost: this._serviceContext.automergeHost
5814
- });
5815
- await this._queryService.open(ctx);
5816
5758
  this._serviceRegistry.setServices({
5817
5759
  SystemService: this._systemService,
5818
5760
  IdentityService: new IdentityServiceImpl((params) => this._createIdentity(params), this._serviceContext.identityManager, this._serviceContext.keyring, (profile) => this._serviceContext.broadcastProfileUpdate(profile)),
@@ -5822,8 +5764,8 @@ var ClientServicesHost = class {
5822
5764
  await this._serviceContext.initialized.wait();
5823
5765
  return this._serviceContext.dataSpaceManager;
5824
5766
  }),
5825
- DataService: new DataServiceImpl(this._serviceContext.automergeHost),
5826
- QueryService: this._queryService,
5767
+ DataService: this._serviceContext.echoHost.dataService,
5768
+ QueryService: this._serviceContext.echoHost.queryService,
5827
5769
  NetworkService: new NetworkServiceImpl(this._serviceContext.networkManager, this._serviceContext.signalManager),
5828
5770
  LoggingService: this._loggingService,
5829
5771
  TracingService: this._tracingService,
@@ -5854,7 +5796,7 @@ var ClientServicesHost = class {
5854
5796
  deviceKey
5855
5797
  }, {
5856
5798
  F: __dxlog_file19,
5857
- L: 330,
5799
+ L: 314,
5858
5800
  S: this,
5859
5801
  C: (f, a) => f(...a)
5860
5802
  });
@@ -5862,7 +5804,7 @@ var ClientServicesHost = class {
5862
5804
  id: traceId
5863
5805
  }), {
5864
5806
  F: __dxlog_file19,
5865
- L: 331,
5807
+ L: 315,
5866
5808
  S: this,
5867
5809
  C: (f, a) => f(...a)
5868
5810
  });
@@ -5876,7 +5818,7 @@ var ClientServicesHost = class {
5876
5818
  deviceKey
5877
5819
  }, {
5878
5820
  F: __dxlog_file19,
5879
- L: 342,
5821
+ L: 326,
5880
5822
  S: this,
5881
5823
  C: (f, a) => f(...a)
5882
5824
  });
@@ -5886,7 +5828,6 @@ var ClientServicesHost = class {
5886
5828
  SystemService: this._systemService
5887
5829
  });
5888
5830
  await this._loggingService.close();
5889
- await this._queryService.close();
5890
5831
  await this._serviceContext.close();
5891
5832
  await this._level?.close();
5892
5833
  this._open = false;
@@ -5895,7 +5836,7 @@ var ClientServicesHost = class {
5895
5836
  deviceKey
5896
5837
  }, {
5897
5838
  F: __dxlog_file19,
5898
- L: 352,
5839
+ L: 335,
5899
5840
  S: this,
5900
5841
  C: (f, a) => f(...a)
5901
5842
  });
@@ -5906,13 +5847,13 @@ var ClientServicesHost = class {
5906
5847
  id: traceId
5907
5848
  }), {
5908
5849
  F: __dxlog_file19,
5909
- L: 357,
5850
+ L: 340,
5910
5851
  S: this,
5911
5852
  C: (f, a) => f(...a)
5912
5853
  });
5913
5854
  log16("resetting...", void 0, {
5914
5855
  F: __dxlog_file19,
5915
- L: 359,
5856
+ L: 342,
5916
5857
  S: this,
5917
5858
  C: (f, a) => f(...a)
5918
5859
  });
@@ -5920,7 +5861,7 @@ var ClientServicesHost = class {
5920
5861
  await this._storage.reset();
5921
5862
  log16("reset", void 0, {
5922
5863
  F: __dxlog_file19,
5923
- L: 362,
5864
+ L: 345,
5924
5865
  S: this,
5925
5866
  C: (f, a) => f(...a)
5926
5867
  });
@@ -5928,7 +5869,7 @@ var ClientServicesHost = class {
5928
5869
  id: traceId
5929
5870
  }), {
5930
5871
  F: __dxlog_file19,
5931
- L: 363,
5872
+ L: 346,
5932
5873
  S: this,
5933
5874
  C: (f, a) => f(...a)
5934
5875
  });
@@ -5941,14 +5882,14 @@ var ClientServicesHost = class {
5941
5882
  const automergeIndex = space.automergeSpaceState.rootUrl;
5942
5883
  invariant16(automergeIndex, void 0, {
5943
5884
  F: __dxlog_file19,
5944
- L: 375,
5885
+ L: 358,
5945
5886
  S: this,
5946
5887
  A: [
5947
5888
  "automergeIndex",
5948
5889
  ""
5949
5890
  ]
5950
5891
  });
5951
- const document = await this._serviceContext.automergeHost.repo.find(automergeIndex);
5892
+ const document = await this._serviceContext.echoHost.automergeRepo.find(automergeIndex);
5952
5893
  await document.whenReady();
5953
5894
  const properties = {
5954
5895
  system: {
@@ -5968,7 +5909,7 @@ var ClientServicesHost = class {
5968
5909
  propertiesId
5969
5910
  ], properties);
5970
5911
  });
5971
- await this._serviceContext.automergeHost.repo.flush();
5912
+ await this._serviceContext.echoHost.flush();
5972
5913
  return identity;
5973
5914
  }
5974
5915
  };
@@ -6068,4 +6009,4 @@ export {
6068
6009
  ClientServicesHost,
6069
6010
  ClientServicesProviderResource
6070
6011
  };
6071
- //# sourceMappingURL=chunk-CMVTOS5E.mjs.map
6012
+ //# sourceMappingURL=chunk-5AW3X677.mjs.map