@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.
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_JRDM7NQS_exports = {};
30
- __export(chunk_JRDM7NQS_exports, {
29
+ var chunk_LIWLWYC3_exports = {};
30
+ __export(chunk_LIWLWYC3_exports, {
31
31
  ClientRpcServer: () => ClientRpcServer,
32
32
  ClientServicesHost: () => ClientServicesHost,
33
33
  ClientServicesProviderResource: () => ClientServicesProviderResource,
@@ -70,7 +70,7 @@ __export(chunk_JRDM7NQS_exports, {
70
70
  subscribeToSpaces: () => subscribeToSpaces,
71
71
  subscribeToSwarmInfo: () => subscribeToSwarmInfo
72
72
  });
73
- module.exports = __toCommonJS(chunk_JRDM7NQS_exports);
73
+ module.exports = __toCommonJS(chunk_LIWLWYC3_exports);
74
74
  var import_async = require("@dxos/async");
75
75
  var import_codec_protobuf = require("@dxos/codec-protobuf");
76
76
  var import_feed_store = require("@dxos/feed-store");
@@ -216,32 +216,28 @@ var import_util7 = require("@dxos/util");
216
216
  var import_async14 = require("@dxos/async");
217
217
  var import_context11 = require("@dxos/context");
218
218
  var import_credentials14 = require("@dxos/credentials");
219
- var import_async15 = require("@dxos/async");
220
- var import_automerge = require("@dxos/automerge/automerge");
221
- var import_context12 = require("@dxos/context");
222
219
  var import_echo_db = require("@dxos/echo-db");
223
- var import_echo_pipeline3 = require("@dxos/echo-pipeline");
220
+ var import_echo_protocol2 = require("@dxos/echo-protocol");
224
221
  var import_echo_schema = require("@dxos/echo-schema");
225
222
  var import_invariant13 = require("@dxos/invariant");
226
223
  var import_log13 = require("@dxos/log");
227
224
  var import_services13 = require("@dxos/protocols/proto/dxos/client/services");
228
- var import_util8 = require("@dxos/util");
229
- var import_async16 = require("@dxos/async");
230
- var import_context13 = require("@dxos/context");
225
+ var import_async15 = require("@dxos/async");
226
+ var import_context12 = require("@dxos/context");
231
227
  var import_invariant14 = require("@dxos/invariant");
232
228
  var import_keys11 = require("@dxos/keys");
233
229
  var import_log14 = require("@dxos/log");
234
230
  var import_protocols10 = require("@dxos/protocols");
235
231
  var import_teleport3 = require("@dxos/teleport");
236
- var import_util9 = require("@dxos/util");
237
- var import_async17 = require("@dxos/async");
232
+ var import_util8 = require("@dxos/util");
233
+ var import_async16 = require("@dxos/async");
238
234
  var import_client_protocol5 = require("@dxos/client-protocol");
239
- var import_context14 = require("@dxos/context");
235
+ var import_context13 = require("@dxos/context");
240
236
  var import_credentials15 = require("@dxos/credentials");
241
237
  var import_echo_db2 = require("@dxos/echo-db");
238
+ var import_echo_pipeline3 = require("@dxos/echo-pipeline");
242
239
  var import_echo_pipeline4 = require("@dxos/echo-pipeline");
243
- var import_echo_pipeline5 = require("@dxos/echo-pipeline");
244
- var import_echo_protocol2 = require("@dxos/echo-protocol");
240
+ var import_echo_protocol3 = require("@dxos/echo-protocol");
245
241
  var import_echo_schema2 = require("@dxos/echo-schema");
246
242
  var import_feed_store4 = require("@dxos/feed-store");
247
243
  var import_invariant15 = require("@dxos/invariant");
@@ -252,12 +248,12 @@ var import_services14 = require("@dxos/protocols/proto/dxos/client/services");
252
248
  var import_credentials16 = require("@dxos/protocols/proto/dxos/halo/credentials");
253
249
  var import_teleport_extension_gossip2 = require("@dxos/teleport-extension-gossip");
254
250
  var import_tracing6 = require("@dxos/tracing");
255
- var import_util10 = require("@dxos/util");
251
+ var import_util9 = require("@dxos/util");
256
252
  var import_credentials17 = require("@dxos/credentials");
257
253
  var import_debug4 = require("@dxos/debug");
258
254
  var import_credentials18 = require("@dxos/protocols/proto/dxos/halo/credentials");
259
255
  var import_timeframe4 = require("@dxos/timeframe");
260
- var import_async18 = require("@dxos/async");
256
+ var import_async17 = require("@dxos/async");
261
257
  var import_codec_protobuf11 = require("@dxos/codec-protobuf");
262
258
  var import_credentials19 = require("@dxos/credentials");
263
259
  var import_debug5 = require("@dxos/debug");
@@ -267,12 +263,12 @@ var import_log16 = require("@dxos/log");
267
263
  var import_protocols12 = require("@dxos/protocols");
268
264
  var import_services15 = require("@dxos/protocols/proto/dxos/client/services");
269
265
  var import_tracing7 = require("@dxos/tracing");
270
- var import_async19 = require("@dxos/async");
271
- var import_context15 = require("@dxos/context");
266
+ var import_async18 = require("@dxos/async");
267
+ var import_context14 = require("@dxos/context");
272
268
  var import_credentials20 = require("@dxos/credentials");
273
269
  var import_debug6 = require("@dxos/debug");
274
270
  var import_echo_db3 = require("@dxos/echo-db");
275
- var import_echo_pipeline6 = require("@dxos/echo-pipeline");
271
+ var import_echo_pipeline5 = require("@dxos/echo-pipeline");
276
272
  var import_feed_store6 = require("@dxos/feed-store");
277
273
  var import_invariant17 = require("@dxos/invariant");
278
274
  var import_keyring = require("@dxos/keyring");
@@ -282,7 +278,7 @@ var import_protocols13 = require("@dxos/protocols");
282
278
  var import_services16 = require("@dxos/protocols/proto/dxos/client/services");
283
279
  var import_teleport_extension_object_sync = require("@dxos/teleport-extension-object-sync");
284
280
  var import_tracing8 = require("@dxos/tracing");
285
- var import_util11 = require("@dxos/util");
281
+ var import_util10 = require("@dxos/util");
286
282
  var import_invariant18 = require("@dxos/invariant");
287
283
  var import_lock_file = require("@dxos/lock-file");
288
284
  var import_log18 = require("@dxos/log");
@@ -291,7 +287,7 @@ var import_config = require("@dxos/protocols/proto/dxos/config");
291
287
  var import_random_access_storage = require("@dxos/random-access-storage");
292
288
  var import_client_protocol6 = require("@dxos/client-protocol");
293
289
  var import_config2 = require("@dxos/protocols/proto/dxos/config");
294
- var import_util12 = require("@dxos/util");
290
+ var import_util11 = require("@dxos/util");
295
291
  var import_node_path = __toESM(require("node:path"));
296
292
  var import_keys14 = require("@dxos/keys");
297
293
  var import_kv_store = require("@dxos/kv-store");
@@ -299,10 +295,10 @@ var import_automerge_repo = require("@dxos/automerge/automerge-repo");
299
295
  var import_invariant19 = require("@dxos/invariant");
300
296
  var import_log19 = require("@dxos/log");
301
297
  var import_protocols15 = require("@dxos/protocols");
302
- var import_util13 = require("@dxos/util");
303
- var import_async20 = require("@dxos/async");
298
+ var import_util12 = require("@dxos/util");
299
+ var import_async19 = require("@dxos/async");
304
300
  var import_client_protocol7 = require("@dxos/client-protocol");
305
- var import_context16 = require("@dxos/context");
301
+ var import_context15 = require("@dxos/context");
306
302
  var import_invariant20 = require("@dxos/invariant");
307
303
  var import_keys15 = require("@dxos/keys");
308
304
  var import_log20 = require("@dxos/log");
@@ -312,30 +308,30 @@ var import_protocols16 = require("@dxos/protocols");
312
308
  var import_services17 = require("@dxos/protocols/proto/dxos/client/services");
313
309
  var import_tracing9 = require("@dxos/tracing");
314
310
  var import_websocket_rpc = require("@dxos/websocket-rpc");
315
- var import_async21 = require("@dxos/async");
311
+ var import_async20 = require("@dxos/async");
316
312
  var import_codec_protobuf12 = require("@dxos/codec-protobuf");
317
313
  var import_invariant21 = require("@dxos/invariant");
318
314
  var import_services18 = require("@dxos/protocols/proto/dxos/client/services");
319
315
  var import_config3 = require("@dxos/config");
320
316
  var import_services19 = require("@dxos/protocols/proto/dxos/client/services");
321
317
  var import_tracing10 = require("@dxos/tracing");
322
- var import_util14 = require("@dxos/util");
318
+ var import_util13 = require("@dxos/util");
323
319
  var import_keys16 = require("@dxos/keys");
324
- var import_util15 = require("@dxos/util");
325
- var import_async22 = require("@dxos/async");
320
+ var import_util14 = require("@dxos/util");
321
+ var import_async21 = require("@dxos/async");
326
322
  var import_codec_protobuf13 = require("@dxos/codec-protobuf");
327
323
  var import_keys17 = require("@dxos/keys");
328
- var import_util16 = require("@dxos/util");
329
- var import_async23 = require("@dxos/async");
324
+ var import_util15 = require("@dxos/util");
325
+ var import_async22 = require("@dxos/async");
330
326
  var import_codec_protobuf14 = require("@dxos/codec-protobuf");
331
327
  var import_keys18 = require("@dxos/keys");
332
328
  var import_log21 = require("@dxos/log");
333
329
  var import_services20 = require("@dxos/protocols/proto/dxos/client/services");
334
- var import_util17 = require("@dxos/util");
330
+ var import_util16 = require("@dxos/util");
335
331
  var import_codec_protobuf15 = require("@dxos/codec-protobuf");
336
332
  var import_codec_protobuf16 = require("@dxos/codec-protobuf");
337
333
  var import_services21 = require("@dxos/protocols/proto/dxos/client/services");
338
- var import_util18 = require("@dxos/util");
334
+ var import_util17 = require("@dxos/util");
339
335
  var subscribeToFeeds = ({ feedStore }, { feedKeys }) => {
340
336
  return new import_codec_protobuf.Stream(({ next }) => {
341
337
  const subscriptions = new import_async.EventSubscriptions();
@@ -650,7 +646,7 @@ var DevtoolsServiceImpl = class {
650
646
  });
651
647
  }
652
648
  };
653
- var DXOS_VERSION = "0.5.9-main.f099efe";
649
+ var DXOS_VERSION = "0.5.9-next.73dcc17";
654
650
  var getPlatform = () => {
655
651
  if (process.browser) {
656
652
  if (typeof window !== "undefined") {
@@ -1804,7 +1800,7 @@ var IdentityServiceImpl = class extends import_context4.Resource {
1804
1800
  duplicate: space.id
1805
1801
  }, {
1806
1802
  F: __dxlog_file7,
1807
- L: 127,
1803
+ L: 129,
1808
1804
  S: this,
1809
1805
  C: (f, a) => f(...a)
1810
1806
  });
@@ -1815,6 +1811,13 @@ var IdentityServiceImpl = class extends import_context4.Resource {
1815
1811
  recodedDefaultSpace = true;
1816
1812
  recordedDefaultSpaceTrigger.wake();
1817
1813
  }
1814
+ }, (err) => {
1815
+ import_log5.log.catch(err, void 0, {
1816
+ F: __dxlog_file7,
1817
+ L: 140,
1818
+ S: this,
1819
+ C: (f, a) => f(...a)
1820
+ });
1818
1821
  });
1819
1822
  await Promise.race([
1820
1823
  allProcessed,
@@ -3819,11 +3822,12 @@ var AutomergeSpaceState = class extends import_context11.Resource {
3819
3822
  }
3820
3823
  };
3821
3824
  var __dxlog_file15 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/epoch-migrations.ts";
3825
+ var LOAD_DOC_TIMEOUT = 1e4;
3822
3826
  var runEpochMigration = async (ctx, context) => {
3823
3827
  switch (context.migration) {
3824
3828
  case import_services13.CreateEpochRequest.Migration.INIT_AUTOMERGE: {
3825
- const document = context.repo.create();
3826
- await context.repo.flush();
3829
+ const document = context.echoHost.createDoc();
3830
+ await context.echoHost.flush();
3827
3831
  return {
3828
3832
  newRoot: document.url
3829
3833
  };
@@ -3832,10 +3836,11 @@ var runEpochMigration = async (ctx, context) => {
3832
3836
  if (!context.currentRoot) {
3833
3837
  throw new Error("Space does not have an automerge root");
3834
3838
  }
3835
- const rootHandle = context.repo.find(context.currentRoot);
3836
- await (0, import_context12.cancelWithContext)(ctx, (0, import_async15.asyncTimeout)(rootHandle.whenReady(), 1e4));
3837
- const newRoot = context.repo.create(rootHandle.docSync());
3838
- await context.repo.flush();
3839
+ const rootHandle = await context.echoHost.loadDoc(ctx, context.currentRoot, {
3840
+ timeout: LOAD_DOC_TIMEOUT
3841
+ });
3842
+ const newRoot = context.echoHost.createDoc(rootHandle.docSync());
3843
+ await context.echoHost.flush();
3839
3844
  return {
3840
3845
  newRoot: newRoot.url
3841
3846
  };
@@ -3843,66 +3848,76 @@ var runEpochMigration = async (ctx, context) => {
3843
3848
  case import_services13.CreateEpochRequest.Migration.FRAGMENT_AUTOMERGE_ROOT: {
3844
3849
  import_log13.log.info("Fragmenting", void 0, {
3845
3850
  F: __dxlog_file15,
3846
- L: 63,
3851
+ L: 64,
3847
3852
  S: void 0,
3848
3853
  C: (f, a) => f(...a)
3849
3854
  });
3850
3855
  const currentRootUrl = context.currentRoot;
3851
- const rootHandle = context.repo.find(currentRootUrl);
3852
- await (0, import_context12.cancelWithContext)(ctx, (0, import_async15.asyncTimeout)(rootHandle.whenReady(), 1e4));
3856
+ const rootHandle = await context.echoHost.loadDoc(ctx, currentRootUrl, {
3857
+ timeout: LOAD_DOC_TIMEOUT
3858
+ });
3853
3859
  const objects = Object.entries(rootHandle.docSync().objects);
3854
3860
  const properties = (0, import_echo_db.findInlineObjectOfType)(rootHandle.docSync(), import_echo_schema.TYPE_PROPERTIES);
3855
3861
  const otherObjects = objects.filter(([key]) => key !== properties?.[0]);
3856
3862
  (0, import_invariant13.invariant)(properties, "Properties not found", {
3857
3863
  F: __dxlog_file15,
3858
- L: 73,
3864
+ L: 75,
3859
3865
  S: void 0,
3860
3866
  A: [
3861
3867
  "properties",
3862
3868
  "'Properties not found'"
3863
3869
  ]
3864
3870
  });
3865
- const newSpaceDoc = {
3871
+ const newRoot = context.echoHost.createDoc({
3866
3872
  ...rootHandle.docSync(),
3867
3873
  objects: Object.fromEntries([
3868
3874
  properties
3869
3875
  ])
3870
- };
3871
- const newRoot = context.repo.create(newSpaceDoc);
3876
+ });
3872
3877
  (0, import_invariant13.invariant)(typeof newRoot.url === "string" && newRoot.url.length > 0, void 0, {
3873
3878
  F: __dxlog_file15,
3874
- L: 78,
3879
+ L: 82,
3875
3880
  S: void 0,
3876
3881
  A: [
3877
3882
  "typeof newRoot.url === 'string' && newRoot.url.length > 0",
3878
3883
  ""
3879
3884
  ]
3880
3885
  });
3881
- const docLoader = new import_echo_pipeline3.AutomergeDocumentLoaderImpl(context.spaceId, context.repo, context.spaceKey);
3882
- await docLoader.loadSpaceRootDocHandle(ctx, {
3883
- rootUrl: newRoot.url
3884
- });
3885
- otherObjects.forEach(([key, value]) => {
3886
- const handle = docLoader.createDocumentForObject(key);
3887
- handle.change((doc) => {
3888
- (0, import_util8.assignDeep)(doc, [
3889
- "objects",
3890
- key
3891
- ], value);
3886
+ const newLinks = [];
3887
+ for (const [id, objData] of otherObjects) {
3888
+ const handle = context.echoHost.createDoc({
3889
+ version: import_echo_protocol2.SpaceDocVersion.CURRENT,
3890
+ access: {
3891
+ spaceKey: context.spaceKey.toHex()
3892
+ },
3893
+ objects: {
3894
+ [id]: objData
3895
+ }
3892
3896
  });
3897
+ newLinks.push([
3898
+ id,
3899
+ handle.url
3900
+ ]);
3901
+ }
3902
+ newRoot.change((doc) => {
3903
+ doc.links ??= {};
3904
+ for (const [id, url] of newLinks) {
3905
+ doc.links[id] = url;
3906
+ }
3893
3907
  });
3894
- await context.repo.flush();
3908
+ await context.echoHost.flush();
3895
3909
  return {
3896
3910
  newRoot: newRoot.url
3897
3911
  };
3898
3912
  }
3899
3913
  case import_services13.CreateEpochRequest.Migration.MIGRATE_REFERENCES_TO_DXN: {
3900
3914
  const currentRootUrl = context.currentRoot;
3901
- const rootHandle = context.repo.find(currentRootUrl);
3902
- await (0, import_context12.cancelWithContext)(ctx, (0, import_async15.asyncTimeout)(rootHandle.whenReady(), 1e4));
3915
+ const rootHandle = await context.echoHost.loadDoc(ctx, currentRootUrl, {
3916
+ timeout: LOAD_DOC_TIMEOUT
3917
+ });
3903
3918
  (0, import_invariant13.invariant)(rootHandle.docSync(), "Root doc not found", {
3904
3919
  F: __dxlog_file15,
3905
- L: 100,
3920
+ L: 115,
3906
3921
  S: void 0,
3907
3922
  A: [
3908
3923
  "rootHandle.docSync()",
@@ -3911,25 +3926,44 @@ var runEpochMigration = async (ctx, context) => {
3911
3926
  });
3912
3927
  const newRootContent = await (0, import_echo_db.convertLegacySpaceRootDoc)(structuredClone(rootHandle.docSync()));
3913
3928
  for (const [id, url] of Object.entries(newRootContent.links ?? {})) {
3914
- const handle = context.repo.find(url);
3915
- await (0, import_context12.cancelWithContext)(ctx, (0, import_async15.asyncTimeout)(handle.whenReady(), 1e4));
3916
- (0, import_invariant13.invariant)(handle.docSync(), "Doc not found", {
3917
- F: __dxlog_file15,
3918
- L: 107,
3919
- S: void 0,
3920
- A: [
3921
- "handle.docSync()",
3922
- "'Doc not found'"
3923
- ]
3924
- });
3925
- const newDoc = await (0, import_echo_db.convertLegacyReferences)(structuredClone(handle.docSync()));
3926
- const migratedDoc = (0, import_echo_db.migrateDocument)(handle.docSync(), newDoc);
3927
- const newHandle = context.repo.import(import_automerge.next.save(migratedDoc));
3928
- newRootContent.links[id] = newHandle.url;
3929
+ try {
3930
+ const handle = await context.echoHost.loadDoc(ctx, url, {
3931
+ timeout: LOAD_DOC_TIMEOUT
3932
+ });
3933
+ (0, import_invariant13.invariant)(handle.docSync(), void 0, {
3934
+ F: __dxlog_file15,
3935
+ L: 122,
3936
+ S: void 0,
3937
+ A: [
3938
+ "handle.docSync()",
3939
+ ""
3940
+ ]
3941
+ });
3942
+ const newDoc = await (0, import_echo_db.convertLegacyReferences)(structuredClone(handle.docSync()));
3943
+ const migratedDoc = (0, import_echo_db.migrateDocument)(handle.docSync(), newDoc);
3944
+ const newHandle = context.echoHost.createDoc(migratedDoc, {
3945
+ preserveHistory: true
3946
+ });
3947
+ newRootContent.links[id] = newHandle.url;
3948
+ } catch (err) {
3949
+ import_log13.log.warn("Failed to migrate reference", {
3950
+ id,
3951
+ url,
3952
+ error: err
3953
+ }, {
3954
+ F: __dxlog_file15,
3955
+ L: 128,
3956
+ S: void 0,
3957
+ C: (f, a) => f(...a)
3958
+ });
3959
+ delete newRootContent.links[id];
3960
+ }
3929
3961
  }
3930
3962
  const migratedRoot = (0, import_echo_db.migrateDocument)(rootHandle.docSync(), newRootContent);
3931
- const newRoot = context.repo.import(import_automerge.next.save(migratedRoot));
3932
- await context.repo.flush();
3963
+ const newRoot = context.echoHost.createDoc(migratedRoot, {
3964
+ preserveHistory: true
3965
+ });
3966
+ await context.echoHost.flush();
3933
3967
  return {
3934
3968
  newRoot: newRoot.url
3935
3969
  };
@@ -3937,14 +3971,14 @@ var runEpochMigration = async (ctx, context) => {
3937
3971
  case import_services13.CreateEpochRequest.Migration.REPLACE_AUTOMERGE_ROOT: {
3938
3972
  (0, import_invariant13.invariant)(context.newAutomergeRoot, void 0, {
3939
3973
  F: __dxlog_file15,
3940
- L: 124,
3974
+ L: 143,
3941
3975
  S: void 0,
3942
3976
  A: [
3943
3977
  "context.newAutomergeRoot",
3944
3978
  ""
3945
3979
  ]
3946
3980
  });
3947
- await context.repo.flush();
3981
+ await context.echoHost.flush();
3948
3982
  return {
3949
3983
  newRoot: context.newAutomergeRoot
3950
3984
  };
@@ -3959,14 +3993,14 @@ var DEFAULT_NOTARIZE_TIMEOUT = 1e4;
3959
3993
  var WRITER_NOT_SET_ERROR_CODE = "WRITER_NOT_SET";
3960
3994
  var NotarizationPlugin = class {
3961
3995
  constructor() {
3962
- this._ctx = new import_context13.Context(void 0, {
3996
+ this._ctx = new import_context12.Context(void 0, {
3963
3997
  F: __dxlog_file16,
3964
3998
  L: 62
3965
3999
  });
3966
- this._extensionOpened = new import_async16.Event();
4000
+ this._extensionOpened = new import_async15.Event();
3967
4001
  this._extensions = /* @__PURE__ */ new Set();
3968
- this._processedCredentials = new import_util9.ComplexSet(import_keys11.PublicKey.hash);
3969
- this._processCredentialsTriggers = new import_util9.ComplexMap(import_keys11.PublicKey.hash);
4002
+ this._processedCredentials = new import_util8.ComplexSet(import_keys11.PublicKey.hash);
4003
+ this._processCredentialsTriggers = new import_util8.ComplexMap(import_keys11.PublicKey.hash);
3970
4004
  }
3971
4005
  get hasWriter() {
3972
4006
  return !!this._writer;
@@ -3997,7 +4031,7 @@ var NotarizationPlugin = class {
3997
4031
  "'Credentials must have an id'"
3998
4032
  ]
3999
4033
  });
4000
- const errors = new import_async16.Trigger();
4034
+ const errors = new import_async15.Trigger();
4001
4035
  const ctx = this._ctx.derive({
4002
4036
  onError: (err) => {
4003
4037
  import_log14.log.warn("Notarization error", {
@@ -4014,7 +4048,7 @@ var NotarizationPlugin = class {
4014
4048
  });
4015
4049
  opCtx?.onDispose(() => ctx.dispose());
4016
4050
  if (timeout !== 0) {
4017
- (0, import_async16.scheduleTask)(ctx, () => {
4051
+ (0, import_async15.scheduleTask)(ctx, () => {
4018
4052
  import_log14.log.warn("Notarization timeout", {
4019
4053
  timeout,
4020
4054
  peers: Array.from(this._extensions).map((extension) => extension.remotePeerId)
@@ -4025,12 +4059,12 @@ var NotarizationPlugin = class {
4025
4059
  C: (f, a) => f(...a)
4026
4060
  });
4027
4061
  void ctx.dispose();
4028
- errors.throw(new import_async16.TimeoutError(timeout, "Notarization timed out"));
4062
+ errors.throw(new import_async15.TimeoutError(timeout, "Notarization timed out"));
4029
4063
  }, timeout);
4030
4064
  }
4031
4065
  const allNotarized = Promise.all(credentials.map((credential) => this._waitUntilProcessed(credential.id)));
4032
4066
  const peersTried = /* @__PURE__ */ new Set();
4033
- const notarizeTask = new import_async16.DeferredTask(ctx, async () => {
4067
+ const notarizeTask = new import_async15.DeferredTask(ctx, async () => {
4034
4068
  try {
4035
4069
  if (this._extensions.size === 0) {
4036
4070
  return;
@@ -4048,7 +4082,7 @@ var NotarizationPlugin = class {
4048
4082
  C: (f, a) => f(...a)
4049
4083
  });
4050
4084
  peersTried.clear();
4051
- (0, import_async16.scheduleTask)(ctx, () => notarizeTask.schedule(), retryTimeout);
4085
+ (0, import_async15.scheduleTask)(ctx, () => notarizeTask.schedule(), retryTimeout);
4052
4086
  return;
4053
4087
  }
4054
4088
  peersTried.add(peer);
@@ -4070,7 +4104,7 @@ var NotarizationPlugin = class {
4070
4104
  S: this,
4071
4105
  C: (f, a) => f(...a)
4072
4106
  });
4073
- await (0, import_async16.sleep)(successDelay);
4107
+ await (0, import_async15.sleep)(successDelay);
4074
4108
  } catch (err) {
4075
4109
  if (!ctx.disposed && !err.message.includes(WRITER_NOT_SET_ERROR_CODE)) {
4076
4110
  import_log14.log.info("error notarizing (recoverable)", err, {
@@ -4087,7 +4121,7 @@ var NotarizationPlugin = class {
4087
4121
  this._extensionOpened.on(ctx, () => notarizeTask.schedule());
4088
4122
  try {
4089
4123
  await Promise.race([
4090
- (0, import_context13.rejectOnDispose)(ctx),
4124
+ (0, import_context12.rejectOnDispose)(ctx),
4091
4125
  allNotarized,
4092
4126
  errors.wait()
4093
4127
  ]);
@@ -4128,7 +4162,7 @@ var NotarizationPlugin = class {
4128
4162
  if (this._processedCredentials.has(id)) {
4129
4163
  return;
4130
4164
  }
4131
- await (0, import_util9.entry)(this._processCredentialsTriggers, id).orInsert(new import_async16.Trigger()).value.wait();
4165
+ await (0, import_util8.entry)(this._processCredentialsTriggers, id).orInsert(new import_async15.Trigger()).value.wait();
4132
4166
  }
4133
4167
  /**
4134
4168
  * Requests from other peers to notarize credentials.
@@ -4627,7 +4661,7 @@ var DataSpace = class {
4627
4661
  err
4628
4662
  }, {
4629
4663
  F: __dxlog_file17,
4630
- L: 431,
4664
+ L: 433,
4631
4665
  S: this,
4632
4666
  C: (f, a) => f(...a)
4633
4667
  });
@@ -4655,7 +4689,7 @@ var DataSpace = class {
4655
4689
  return null;
4656
4690
  }
4657
4691
  const { newRoot } = await runEpochMigration(ctx, {
4658
- repo: this._echoHost.automergeRepo,
4692
+ echoHost: this._echoHost,
4659
4693
  spaceId: this.id,
4660
4694
  spaceKey: this.key,
4661
4695
  migration: options.migration,
@@ -4713,7 +4747,7 @@ var DataSpace = class {
4713
4747
  state: import_services12.SpaceState[this._state]
4714
4748
  }, {
4715
4749
  F: __dxlog_file17,
4716
- L: 512,
4750
+ L: 514,
4717
4751
  S: this,
4718
4752
  C: (f, a) => f(...a)
4719
4753
  });
@@ -4856,12 +4890,12 @@ var DataSpaceManager = class {
4856
4890
  this._echoHost = _echoHost;
4857
4891
  this._invitationsManager = _invitationsManager;
4858
4892
  this._params = _params;
4859
- this._ctx = new import_context14.Context(void 0, {
4893
+ this._ctx = new import_context13.Context(void 0, {
4860
4894
  F: __dxlog_file18,
4861
4895
  L: 104
4862
4896
  });
4863
- this.updated = new import_async17.Event();
4864
- this._spaces = new import_util10.ComplexMap(import_keys12.PublicKey.hash);
4897
+ this.updated = new import_async16.Event();
4898
+ this._spaces = new import_util9.ComplexMap(import_keys12.PublicKey.hash);
4865
4899
  this._isOpen = false;
4866
4900
  this._instanceId = import_keys12.PublicKey.random().toHex();
4867
4901
  import_tracing6.trace.diagnostic({
@@ -4914,7 +4948,7 @@ var DataSpaceManager = class {
4914
4948
  S: this,
4915
4949
  C: (f, a) => f(...a)
4916
4950
  });
4917
- await (0, import_util10.forEachAsync)(this._metadataStore.spaces, async (spaceMetadata) => {
4951
+ await (0, import_util9.forEachAsync)(this._metadataStore.spaces, async (spaceMetadata) => {
4918
4952
  try {
4919
4953
  (0, import_log15.log)("load space", {
4920
4954
  spaceMetadata
@@ -5018,13 +5052,13 @@ var DataSpaceManager = class {
5018
5052
  return false;
5019
5053
  }
5020
5054
  switch (space.databaseRoot.getVersion()) {
5021
- case import_echo_protocol2.SpaceDocVersion.CURRENT: {
5055
+ case import_echo_protocol3.SpaceDocVersion.CURRENT: {
5022
5056
  const [_, properties] = (0, import_echo_db2.findInlineObjectOfType)(space.databaseRoot.docSync(), import_echo_schema2.TYPE_PROPERTIES) ?? [];
5023
5057
  return properties?.data?.[DEFAULT_SPACE_KEY] === this._signingContext.identityKey.toHex();
5024
5058
  }
5025
- case import_echo_protocol2.SpaceDocVersion.LEGACY: {
5059
+ case import_echo_protocol3.SpaceDocVersion.LEGACY: {
5026
5060
  const convertedDoc = await (0, import_echo_db2.convertLegacyReferences)(space.databaseRoot.docSync());
5027
- const [_, properties] = (0, import_echo_db2.findInlineObjectOfType)(convertedDoc, import_echo_protocol2.LEGACY_TYPE_PROPERTIES) ?? [];
5061
+ const [_, properties] = (0, import_echo_db2.findInlineObjectOfType)(convertedDoc, import_echo_protocol3.LEGACY_TYPE_PROPERTIES) ?? [];
5028
5062
  return properties?.data?.[DEFAULT_SPACE_KEY] === this._signingContext.identityKey.toHex();
5029
5063
  }
5030
5064
  default:
@@ -5045,7 +5079,7 @@ var DataSpaceManager = class {
5045
5079
  const document = await this._getSpaceRootDocument(space);
5046
5080
  const properties = {
5047
5081
  system: {
5048
- type: (0, import_echo_protocol2.encodeReference)((0, import_echo_schema2.getTypeReference)(import_client_protocol5.PropertiesType))
5082
+ type: (0, import_echo_protocol3.encodeReference)((0, import_echo_schema2.getTypeReference)(import_client_protocol5.PropertiesType))
5049
5083
  },
5050
5084
  data: {
5051
5085
  [DEFAULT_SPACE_KEY]: this._signingContext.identityKey.toHex()
@@ -5056,7 +5090,7 @@ var DataSpaceManager = class {
5056
5090
  };
5057
5091
  const propertiesId = (0, import_echo_schema2.generateEchoId)();
5058
5092
  document.change((doc) => {
5059
- (0, import_util10.assignDeep)(doc, [
5093
+ (0, import_util9.assignDeep)(doc, [
5060
5094
  "objects",
5061
5095
  propertiesId
5062
5096
  ], properties);
@@ -5163,7 +5197,7 @@ var DataSpaceManager = class {
5163
5197
  * TODO(dmaretskyi): Consider removing.
5164
5198
  */
5165
5199
  async waitUntilSpaceReady(spaceKey) {
5166
- await (0, import_context14.cancelWithContext)(this._ctx, this.updated.waitForCondition(() => {
5200
+ await (0, import_context13.cancelWithContext)(this._ctx, this.updated.waitForCondition(() => {
5167
5201
  const space = this._spaces.get(spaceKey);
5168
5202
  return !!space && space.state === import_services14.SpaceState.READY;
5169
5203
  }));
@@ -5210,10 +5244,10 @@ var DataSpaceManager = class {
5210
5244
  swarmIdentity: {
5211
5245
  peerKey: this._signingContext.deviceKey,
5212
5246
  credentialProvider: createAuthProvider(this._signingContext.credentialSigner),
5213
- credentialAuthenticator: (0, import_util10.deferFunction)(() => dataSpace.authVerifier.verifier)
5247
+ credentialAuthenticator: (0, import_util9.deferFunction)(() => dataSpace.authVerifier.verifier)
5214
5248
  },
5215
5249
  onAuthorizedConnection: (session) => {
5216
- session.addExtension("dxos.mesh.teleport.admission-discovery", new import_echo_pipeline5.CredentialServerExtension(space));
5250
+ session.addExtension("dxos.mesh.teleport.admission-discovery", new import_echo_pipeline4.CredentialServerExtension(space));
5217
5251
  session.addExtension("dxos.mesh.teleport.gossip", gossip.createExtension({
5218
5252
  remotePeerId: session.remotePeerId
5219
5253
  }));
@@ -5315,7 +5349,7 @@ var DataSpaceManager = class {
5315
5349
  const peers = presence.getPeersByIdentityKey(member.key);
5316
5350
  const sessions = peers.map((p) => p.peerId && spaceProtocol.sessions.get(p.peerId));
5317
5351
  const sessionsToClose = sessions.filter((s) => {
5318
- return (s && member.role === import_credentials16.SpaceMember.Role.REMOVED !== (s.authStatus === import_echo_pipeline4.AuthStatus.FAILURE)) ?? false;
5352
+ return (s && member.role === import_credentials16.SpaceMember.Role.REMOVED !== (s.authStatus === import_echo_pipeline3.AuthStatus.FAILURE)) ?? false;
5319
5353
  });
5320
5354
  sessionsToClose.forEach((session) => {
5321
5355
  void session.close().catch(import_log15.log.error);
@@ -5388,19 +5422,19 @@ var DataSpaceManager = class {
5388
5422
  }
5389
5423
  };
5390
5424
  _ts_decorate5([
5391
- import_async17.synchronized
5425
+ import_async16.synchronized
5392
5426
  ], DataSpaceManager.prototype, "open", null);
5393
5427
  _ts_decorate5([
5394
- import_async17.synchronized
5428
+ import_async16.synchronized
5395
5429
  ], DataSpaceManager.prototype, "close", null);
5396
5430
  _ts_decorate5([
5397
- import_async17.synchronized
5431
+ import_async16.synchronized
5398
5432
  ], DataSpaceManager.prototype, "createSpace", null);
5399
5433
  _ts_decorate5([
5400
- import_async17.synchronized
5434
+ import_async16.synchronized
5401
5435
  ], DataSpaceManager.prototype, "acceptSpace", null);
5402
5436
  DataSpaceManager = _ts_decorate5([
5403
- (0, import_async17.trackLeaks)("open", "close")
5437
+ (0, import_async16.trackLeaks)("open", "close")
5404
5438
  ], DataSpaceManager);
5405
5439
  var __dxlog_file19 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/spaces-service.ts";
5406
5440
  var SpacesServiceImpl = class {
@@ -5468,7 +5502,7 @@ var SpacesServiceImpl = class {
5468
5502
  }
5469
5503
  querySpaces() {
5470
5504
  return new import_codec_protobuf11.Stream(({ next, ctx }) => {
5471
- const scheduler = new import_async18.UpdateScheduler(ctx, async () => {
5505
+ const scheduler = new import_async17.UpdateScheduler(ctx, async () => {
5472
5506
  const dataSpaceManager = await this._getDataSpaceManager();
5473
5507
  const spaces = Array.from(dataSpaceManager.spaces.values()).map((space) => this._serializeSpace(space));
5474
5508
  (0, import_log16.log)("update", {
@@ -5486,9 +5520,9 @@ var SpacesServiceImpl = class {
5486
5520
  }, {
5487
5521
  maxFrequency: process.env.NODE_ENV === "test" ? void 0 : 2
5488
5522
  });
5489
- (0, import_async18.scheduleTask)(ctx, async () => {
5523
+ (0, import_async17.scheduleTask)(ctx, async () => {
5490
5524
  const dataSpaceManager = await this._getDataSpaceManager();
5491
- const subscriptions = new import_async18.EventSubscriptions();
5525
+ const subscriptions = new import_async17.EventSubscriptions();
5492
5526
  ctx.onDispose(() => subscriptions.clear());
5493
5527
  const subscribeSpaces = () => {
5494
5528
  subscriptions.clear();
@@ -5528,7 +5562,7 @@ var SpacesServiceImpl = class {
5528
5562
  }
5529
5563
  subscribeMessages({ spaceKey, channel }) {
5530
5564
  return new import_codec_protobuf11.Stream(({ ctx, next }) => {
5531
- (0, import_async18.scheduleTask)(ctx, async () => {
5565
+ (0, import_async17.scheduleTask)(ctx, async () => {
5532
5566
  const dataSpaceManager = await this._getDataSpaceManager();
5533
5567
  const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug5.raise)(new import_protocols12.SpaceNotFoundError(spaceKey));
5534
5568
  const handle = space.listen(getChannelId(channel), (message) => {
@@ -5547,7 +5581,7 @@ var SpacesServiceImpl = class {
5547
5581
  }
5548
5582
  };
5549
5583
  ctx.onDispose(() => space.spaceState.removeCredentialProcessor(processor));
5550
- (0, import_async18.scheduleTask)(ctx, async () => {
5584
+ (0, import_async17.scheduleTask)(ctx, async () => {
5551
5585
  await space.spaceState.addCredentialProcessor(processor);
5552
5586
  if (noTail) {
5553
5587
  close();
@@ -5686,7 +5720,8 @@ var SpacesServiceImpl = class {
5686
5720
  startDataTimeframe: void 0,
5687
5721
  currentDataTimeframe: void 0,
5688
5722
  targetDataTimeframe: void 0,
5689
- totalDataTimeframe: void 0
5723
+ totalDataTimeframe: void 0,
5724
+ spaceRootUrl: space.databaseRoot?.url
5690
5725
  },
5691
5726
  members: Array.from(space.inner.spaceState.members.values()).map((member) => {
5692
5727
  const peers = space.presence.getPeersOnline().filter(({ identityKey }) => identityKey.equals(member.key));
@@ -5739,7 +5774,7 @@ function _ts_decorate6(decorators, target, key, desc) {
5739
5774
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5740
5775
  }
5741
5776
  var __dxlog_file20 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/service-context.ts";
5742
- var ServiceContext = class extends import_context15.Resource {
5777
+ var ServiceContext = class extends import_context14.Resource {
5743
5778
  constructor(storage, level, networkManager, signalManager, _runtimeParams) {
5744
5779
  super();
5745
5780
  this.storage = storage;
@@ -5747,11 +5782,11 @@ var ServiceContext = class extends import_context15.Resource {
5747
5782
  this.networkManager = networkManager;
5748
5783
  this.signalManager = signalManager;
5749
5784
  this._runtimeParams = _runtimeParams;
5750
- this.initialized = new import_async19.Trigger();
5785
+ this.initialized = new import_async18.Trigger();
5751
5786
  this._handlerFactories = /* @__PURE__ */ new Map();
5752
5787
  this._instanceId = import_keys13.PublicKey.random().toHex();
5753
- this.metadataStore = new import_echo_pipeline6.MetadataStore(storage.createDirectory("metadata"));
5754
- this.snapshotStore = new import_echo_pipeline6.SnapshotStore(storage.createDirectory("snapshots"));
5788
+ this.metadataStore = new import_echo_pipeline5.MetadataStore(storage.createDirectory("metadata"));
5789
+ this.snapshotStore = new import_echo_pipeline5.SnapshotStore(storage.createDirectory("snapshots"));
5755
5790
  this.blobStore = new import_teleport_extension_object_sync.BlobStore(storage.createDirectory("blobs"));
5756
5791
  this.keyring = new import_keyring.Keyring(storage.createDirectory("keyring"));
5757
5792
  this.feedStore = new import_feed_store6.FeedStore({
@@ -5759,12 +5794,12 @@ var ServiceContext = class extends import_context15.Resource {
5759
5794
  root: storage.createDirectory("feeds"),
5760
5795
  signer: this.keyring,
5761
5796
  hypercore: {
5762
- valueEncoding: import_echo_pipeline6.valueEncoding,
5797
+ valueEncoding: import_echo_pipeline5.valueEncoding,
5763
5798
  stats: true
5764
5799
  }
5765
5800
  })
5766
5801
  });
5767
- this.spaceManager = new import_echo_pipeline6.SpaceManager({
5802
+ this.spaceManager = new import_echo_pipeline5.SpaceManager({
5768
5803
  feedStore: this.feedStore,
5769
5804
  networkManager: this.networkManager,
5770
5805
  blobStore: this.blobStore,
@@ -5855,7 +5890,7 @@ var ServiceContext = class extends import_context15.Resource {
5855
5890
  }
5856
5891
  async createIdentity(params = {}) {
5857
5892
  const identity = await this.identityManager.createIdentity(params);
5858
- await this._initialize(new import_context15.Context(void 0, {
5893
+ await this._initialize(new import_context14.Context(void 0, {
5859
5894
  F: __dxlog_file20,
5860
5895
  L: 187
5861
5896
  }));
@@ -5884,7 +5919,7 @@ var ServiceContext = class extends import_context15.Resource {
5884
5919
  }
5885
5920
  async _acceptIdentity(params) {
5886
5921
  const identity = await this.identityManager.acceptIdentity(params);
5887
- await this._initialize(new import_context15.Context(void 0, {
5922
+ await this._initialize(new import_context14.Context(void 0, {
5888
5923
  F: __dxlog_file20,
5889
5924
  L: 209
5890
5925
  }));
@@ -5997,7 +6032,7 @@ _ts_decorate6([
5997
6032
  import_tracing8.trace.span()
5998
6033
  ], ServiceContext.prototype, "_initialize", null);
5999
6034
  ServiceContext = _ts_decorate6([
6000
- (0, import_util11.safeInstanceof)("dxos.client-services.ServiceContext"),
6035
+ (0, import_util10.safeInstanceof)("dxos.client-services.ServiceContext"),
6001
6036
  import_tracing8.trace.resource()
6002
6037
  ], ServiceContext);
6003
6038
  var ServiceRegistry = class {
@@ -6077,7 +6112,7 @@ _ts_decorate7([
6077
6112
  ], Lock.prototype, "lockKey", null);
6078
6113
  var isLocked = (lockPath) => import_lock_file.LockFile.isLocked(lockPath);
6079
6114
  var getRootPath = (config) => {
6080
- const { dataRoot = (0, import_util12.isNode)() ? import_client_protocol6.DX_DATA : "dxos/storage" } = config ?? {};
6115
+ const { dataRoot = (0, import_util11.isNode)() ? import_client_protocol6.DX_DATA : "dxos/storage" } = config ?? {};
6081
6116
  return `${dataRoot}/`;
6082
6117
  };
6083
6118
  var isPersistent = (config) => {
@@ -6205,14 +6240,15 @@ var exportProfileData = async ({ storage, level }) => {
6205
6240
  return archive;
6206
6241
  };
6207
6242
  var importProfileData = async ({ storage, level }, archive) => {
6208
- const batch = level.batch();
6243
+ let batch = level.batch();
6244
+ let count = 0;
6209
6245
  for (const entry2 of archive.storage) {
6210
6246
  switch (entry2.type) {
6211
6247
  case import_protocols15.ProfileArchiveEntryType.FILE: {
6212
6248
  const directory = await storage.createDirectory();
6213
6249
  (0, import_invariant19.invariant)(typeof entry2.key === "string", "Invalid key type", {
6214
6250
  F: __dxlog_file22,
6215
- L: 78,
6251
+ L: 79,
6216
6252
  S: void 0,
6217
6253
  A: [
6218
6254
  "typeof entry.key === 'string'",
@@ -6222,21 +6258,21 @@ var importProfileData = async ({ storage, level }, archive) => {
6222
6258
  const file = await directory.getOrCreateFile(entry2.key);
6223
6259
  (0, import_invariant19.invariant)(entry2.value instanceof Uint8Array, "Invalid value type", {
6224
6260
  F: __dxlog_file22,
6225
- L: 80,
6261
+ L: 81,
6226
6262
  S: void 0,
6227
6263
  A: [
6228
6264
  "entry.value instanceof Uint8Array",
6229
6265
  "'Invalid value type'"
6230
6266
  ]
6231
6267
  });
6232
- await file.write(0, (0, import_util13.arrayToBuffer)(entry2.value));
6268
+ await file.write(0, (0, import_util12.arrayToBuffer)(entry2.value));
6233
6269
  await file.close();
6234
6270
  break;
6235
6271
  }
6236
6272
  case import_protocols15.ProfileArchiveEntryType.KEY_VALUE: {
6237
6273
  (0, import_invariant19.invariant)(entry2.key instanceof Uint8Array, "Invalid key type", {
6238
6274
  F: __dxlog_file22,
6239
- L: 86,
6275
+ L: 87,
6240
6276
  S: void 0,
6241
6277
  A: [
6242
6278
  "entry.key instanceof Uint8Array",
@@ -6245,7 +6281,7 @@ var importProfileData = async ({ storage, level }, archive) => {
6245
6281
  });
6246
6282
  (0, import_invariant19.invariant)(entry2.value instanceof Uint8Array, "Invalid value type", {
6247
6283
  F: __dxlog_file22,
6248
- L: 87,
6284
+ L: 88,
6249
6285
  S: void 0,
6250
6286
  A: [
6251
6287
  "entry.value instanceof Uint8Array",
@@ -6261,7 +6297,27 @@ var importProfileData = async ({ storage, level }, archive) => {
6261
6297
  default:
6262
6298
  throw new Error(`Invalid entry type: ${entry2.type}`);
6263
6299
  }
6300
+ if (++count % 1e3 === 0) {
6301
+ await batch.write();
6302
+ batch = level.batch();
6303
+ import_log19.log.info("importing", {
6304
+ count,
6305
+ total: archive.storage.length,
6306
+ progress: `${(count / archive.storage.length * 100).toFixed()}%`
6307
+ }, {
6308
+ F: __dxlog_file22,
6309
+ L: 101,
6310
+ S: void 0,
6311
+ C: (f, a) => f(...a)
6312
+ });
6313
+ }
6264
6314
  }
6315
+ import_log19.log.info("committing changes..", void 0, {
6316
+ F: __dxlog_file22,
6317
+ L: 109,
6318
+ S: void 0,
6319
+ C: (f, a) => f(...a)
6320
+ });
6265
6321
  await batch.write();
6266
6322
  };
6267
6323
  var __dxlog_file23 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/devices/devices-service.ts";
@@ -6323,7 +6379,7 @@ var DevicesServiceImpl = class {
6323
6379
  presenceSubscribed = true;
6324
6380
  }
6325
6381
  };
6326
- const subscriptions = new import_async21.EventSubscriptions();
6382
+ const subscriptions = new import_async20.EventSubscriptions();
6327
6383
  if (this._identityManager.identity) {
6328
6384
  subscribeIdentity();
6329
6385
  subscribePresence();
@@ -6363,7 +6419,7 @@ var DiagnosticsCollector = class {
6363
6419
  client: clientDiagnostics,
6364
6420
  broadcast: await this.broadcastSender.broadcastDiagnosticsRequest()
6365
6421
  };
6366
- return JSON.parse(JSON.stringify(diagnostics, (0, import_util14.jsonKeyReplacer)(options)));
6422
+ return JSON.parse(JSON.stringify(diagnostics, (0, import_util13.jsonKeyReplacer)(options)));
6367
6423
  }
6368
6424
  };
6369
6425
  var findSystemServiceProvider = () => {
@@ -6373,7 +6429,7 @@ var findSystemServiceProvider = () => {
6373
6429
  };
6374
6430
  var findConfigs = () => {
6375
6431
  const configs = import_tracing10.TRACE_PROCESSOR.findResourcesByAnnotation(import_config3.ConfigResource);
6376
- return configs.map((r) => r.instance.deref()).filter(import_util14.nonNullable);
6432
+ return configs.map((r) => r.instance.deref()).filter(import_util13.nonNullable);
6377
6433
  };
6378
6434
  var ContactsServiceImpl = class {
6379
6435
  constructor(_identityManager, _spaceManager, _dataSpaceManagerProvider) {
@@ -6414,7 +6470,7 @@ var ContactsServiceImpl = class {
6414
6470
  });
6415
6471
  }
6416
6472
  return acc;
6417
- }, new import_util16.ComplexMap(import_keys17.PublicKey.hash));
6473
+ }, new import_util15.ComplexMap(import_keys17.PublicKey.hash));
6418
6474
  return {
6419
6475
  contacts: [
6420
6476
  ...contacts.values()
@@ -6422,16 +6478,16 @@ var ContactsServiceImpl = class {
6422
6478
  };
6423
6479
  }
6424
6480
  queryContacts() {
6425
- const subscribedSpaceKeySet = new import_util16.ComplexSet(import_keys17.PublicKey.hash);
6481
+ const subscribedSpaceKeySet = new import_util15.ComplexSet(import_keys17.PublicKey.hash);
6426
6482
  return new import_codec_protobuf13.Stream(({ next, ctx }) => {
6427
- const pushUpdateTask = new import_async22.UpdateScheduler(ctx, async () => {
6483
+ const pushUpdateTask = new import_async21.UpdateScheduler(ctx, async () => {
6428
6484
  const contacts = await this.getContacts();
6429
6485
  next(contacts);
6430
6486
  }, {
6431
6487
  maxFrequency: 2
6432
6488
  });
6433
- (0, import_async22.scheduleTask)(ctx, async () => {
6434
- const subscriptions = new import_async22.EventSubscriptions();
6489
+ (0, import_async21.scheduleTask)(ctx, async () => {
6490
+ const subscriptions = new import_async21.EventSubscriptions();
6435
6491
  ctx.onDispose(() => subscriptions.clear());
6436
6492
  const subscribeToSpaceAndUpdate = () => {
6437
6493
  const oldSetSize = subscribedSpaceKeySet.size;
@@ -6454,7 +6510,7 @@ var ContactsServiceImpl = class {
6454
6510
  };
6455
6511
  var LoggingServiceImpl = class {
6456
6512
  constructor() {
6457
- this._logs = new import_async23.Event();
6513
+ this._logs = new import_async22.Event();
6458
6514
  this._started = Date.now();
6459
6515
  this._sessionId = import_keys18.PublicKey.random().toHex();
6460
6516
  this._logProcessor = (_config, entry2) => {
@@ -6470,15 +6526,15 @@ var LoggingServiceImpl = class {
6470
6526
  }
6471
6527
  async controlMetrics({ reset, record }) {
6472
6528
  if (reset) {
6473
- import_util17.tracer.clear();
6529
+ import_util16.tracer.clear();
6474
6530
  }
6475
6531
  if (record === true) {
6476
- import_util17.tracer.start();
6532
+ import_util16.tracer.start();
6477
6533
  } else if (record === false) {
6478
- import_util17.tracer.stop();
6534
+ import_util16.tracer.stop();
6479
6535
  }
6480
6536
  return {
6481
- recording: import_util17.tracer.recording
6537
+ recording: import_util16.tracer.recording
6482
6538
  };
6483
6539
  }
6484
6540
  /**
@@ -6486,10 +6542,10 @@ var LoggingServiceImpl = class {
6486
6542
  */
6487
6543
  queryMetrics({ interval = 5e3 }) {
6488
6544
  const getNumericalValues = (key) => {
6489
- const events = import_util17.tracer.get(key) ?? [];
6545
+ const events = import_util16.tracer.get(key) ?? [];
6490
6546
  return {
6491
6547
  key,
6492
- stats: (0, import_util17.numericalValues)(events, "duration")
6548
+ stats: (0, import_util16.numericalValues)(events, "duration")
6493
6549
  };
6494
6550
  };
6495
6551
  return new import_codec_protobuf14.Stream(({ next }) => {
@@ -6527,7 +6583,7 @@ var LoggingServiceImpl = class {
6527
6583
  }
6528
6584
  const record = {
6529
6585
  ...entry2,
6530
- context: (0, import_util17.jsonify)((0, import_log21.getContextFromEntry)(entry2)),
6586
+ context: (0, import_util16.jsonify)((0, import_log21.getContextFromEntry)(entry2)),
6531
6587
  timestamp: /* @__PURE__ */ new Date(),
6532
6588
  meta: {
6533
6589
  // TODO(dmaretskyi): Fix proto.
@@ -6536,7 +6592,7 @@ var LoggingServiceImpl = class {
6536
6592
  scope: {
6537
6593
  hostSessionId: this._sessionId,
6538
6594
  uptimeSeconds: (Date.now() - this._started) / 1e3,
6539
- name: (0, import_util17.getDebugName)(entry2.meta?.S)
6595
+ name: (0, import_util16.getDebugName)(entry2.meta?.S)
6540
6596
  }
6541
6597
  }
6542
6598
  };
@@ -6617,7 +6673,7 @@ var SystemServiceImpl = class {
6617
6673
  const diagnostics = await this._getDiagnostics();
6618
6674
  return {
6619
6675
  timestamp: /* @__PURE__ */ new Date(),
6620
- diagnostics: JSON.parse(JSON.stringify(diagnostics, (0, import_util18.jsonKeyReplacer)({
6676
+ diagnostics: JSON.parse(JSON.stringify(diagnostics, (0, import_util17.jsonKeyReplacer)({
6621
6677
  truncate: keys === import_services21.GetDiagnosticsRequest.KEY_OPTION.TRUNCATE,
6622
6678
  humanize: keys === import_services21.GetDiagnosticsRequest.KEY_OPTION.HUMANIZE
6623
6679
  })))
@@ -6674,7 +6730,7 @@ var ClientServicesHost = class {
6674
6730
  runtimeParams
6675
6731
  } = {}) {
6676
6732
  this._tracingService = import_tracing9.TRACE_PROCESSOR.createTraceSender();
6677
- this._statusUpdate = new import_async20.Event();
6733
+ this._statusUpdate = new import_async19.Event();
6678
6734
  this._opening = false;
6679
6735
  this._open = false;
6680
6736
  this._storage = storage;
@@ -6693,7 +6749,7 @@ var ClientServicesHost = class {
6693
6749
  lockKey,
6694
6750
  onAcquire: () => {
6695
6751
  if (!this._opening) {
6696
- void this.open(new import_context16.Context(void 0, {
6752
+ void this.open(new import_context15.Context(void 0, {
6697
6753
  F: __dxlog_file24,
6698
6754
  L: 121
6699
6755
  }));
@@ -7016,11 +7072,11 @@ _ts_decorate8([
7016
7072
  import_tracing9.trace.info()
7017
7073
  ], ClientServicesHost.prototype, "_open", void 0);
7018
7074
  _ts_decorate8([
7019
- import_async20.synchronized,
7075
+ import_async19.synchronized,
7020
7076
  import_tracing9.trace.span()
7021
7077
  ], ClientServicesHost.prototype, "open", null);
7022
7078
  _ts_decorate8([
7023
- import_async20.synchronized,
7079
+ import_async19.synchronized,
7024
7080
  import_tracing9.trace.span()
7025
7081
  ], ClientServicesHost.prototype, "close", null);
7026
7082
  ClientServicesHost = _ts_decorate8([
@@ -7070,4 +7126,4 @@ ClientServicesHost = _ts_decorate8([
7070
7126
  subscribeToSpaces,
7071
7127
  subscribeToSwarmInfo
7072
7128
  });
7073
- //# sourceMappingURL=chunk-JRDM7NQS.cjs.map
7129
+ //# sourceMappingURL=chunk-LIWLWYC3.cjs.map