@dxos/client-services 0.6.8-main.3be982f → 0.6.8-staging.77f93a3

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 (46) hide show
  1. package/dist/lib/browser/{chunk-I6MMWGWX.mjs → chunk-RZ5JISVH.mjs} +183 -135
  2. package/dist/lib/browser/chunk-RZ5JISVH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +7 -7
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +17 -10
  7. package/dist/lib/browser/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/{chunk-PAH5HN65.cjs → chunk-3A3QU6K5.cjs} +185 -137
  9. package/dist/lib/node/chunk-3A3QU6K5.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +51 -51
  11. package/dist/lib/node/index.cjs.map +3 -3
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +23 -16
  14. package/dist/lib/node/testing/index.cjs.map +3 -3
  15. package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
  16. package/dist/types/src/packlets/identity/identity-manager.d.ts +4 -1
  17. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  18. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  19. package/dist/types/src/packlets/services/service-context.d.ts +3 -1
  20. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  21. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  22. package/dist/types/src/packlets/spaces/data-space-manager.d.ts +4 -0
  23. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  24. package/dist/types/src/packlets/spaces/data-space.d.ts +2 -0
  25. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  26. package/dist/types/src/packlets/testing/test-builder.d.ts +6 -4
  27. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  28. package/dist/types/src/packlets/worker/worker-runtime.d.ts.map +1 -1
  29. package/dist/types/src/version.d.ts +1 -1
  30. package/dist/types/src/version.d.ts.map +1 -1
  31. package/package.json +37 -37
  32. package/src/packlets/devtools/network.ts +12 -5
  33. package/src/packlets/identity/identity-manager.ts +5 -0
  34. package/src/packlets/identity/identity.test.ts +3 -0
  35. package/src/packlets/invitations/invitations-handler.ts +0 -1
  36. package/src/packlets/network/network-service.ts +3 -3
  37. package/src/packlets/services/service-context.test.ts +4 -2
  38. package/src/packlets/services/service-context.ts +31 -3
  39. package/src/packlets/services/service-host.ts +20 -11
  40. package/src/packlets/spaces/data-space-manager.ts +8 -0
  41. package/src/packlets/spaces/data-space.ts +3 -1
  42. package/src/packlets/testing/test-builder.ts +21 -9
  43. package/src/packlets/worker/worker-runtime.ts +5 -3
  44. package/src/version.ts +1 -1
  45. package/dist/lib/browser/chunk-I6MMWGWX.mjs.map +0 -7
  46. package/dist/lib/node/chunk-PAH5HN65.cjs.map +0 -7
@@ -89,7 +89,7 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src
89
89
  var subscribeToNetworkStatus = ({ signalManager }) => new Stream2(({ next, close }) => {
90
90
  const update = () => {
91
91
  try {
92
- const status = signalManager.getStatus();
92
+ const status = signalManager.getStatus?.();
93
93
  next({
94
94
  servers: status
95
95
  });
@@ -97,7 +97,7 @@ var subscribeToNetworkStatus = ({ signalManager }) => new Stream2(({ next, close
97
97
  close(err);
98
98
  }
99
99
  };
100
- signalManager.statusChanged.on(() => update());
100
+ signalManager.statusChanged?.on(() => update());
101
101
  update();
102
102
  });
103
103
  var subscribeToSignal = ({ signalManager }) => new Stream2(({ next }) => {
@@ -108,8 +108,8 @@ var subscribeToSignal = ({ signalManager }) => new Stream2(({ next }) => {
108
108
  signalManager.onMessage.on(ctx, (message) => {
109
109
  next({
110
110
  message: {
111
- author: message.author.asUint8Array(),
112
- recipient: message.recipient.asUint8Array(),
111
+ author: PublicKey2.from(message.author.peerKey).asUint8Array(),
112
+ recipient: PublicKey2.from(message.recipient.peerKey).asUint8Array(),
113
113
  payload: message.payload
114
114
  },
115
115
  receivedAt: /* @__PURE__ */ new Date()
@@ -117,7 +117,16 @@ var subscribeToSignal = ({ signalManager }) => new Stream2(({ next }) => {
117
117
  });
118
118
  signalManager.swarmEvent.on(ctx, (swarmEvent) => {
119
119
  next({
120
- swarmEvent: swarmEvent.swarmEvent,
120
+ swarmEvent: swarmEvent.peerAvailable ? {
121
+ peerAvailable: {
122
+ peer: PublicKey2.from(swarmEvent.peerAvailable.peer.peerKey).asUint8Array(),
123
+ since: swarmEvent.peerAvailable.since
124
+ }
125
+ } : {
126
+ peerLeft: {
127
+ peer: PublicKey2.from(swarmEvent.peerLeft.peer.peerKey).asUint8Array()
128
+ }
129
+ },
121
130
  topic: swarmEvent.topic.asUint8Array(),
122
131
  receivedAt: /* @__PURE__ */ new Date()
123
132
  });
@@ -359,7 +368,7 @@ import { SpaceMember } from "@dxos/protocols/proto/dxos/client/services";
359
368
  import { TRACE_PROCESSOR } from "@dxos/tracing";
360
369
 
361
370
  // packages/sdk/client-services/src/version.ts
362
- var DXOS_VERSION = "0.6.8-main.3be982f";
371
+ var DXOS_VERSION = "0.6.8-staging.77f93a3";
363
372
 
364
373
  // packages/sdk/client-services/src/packlets/services/platform.ts
365
374
  import { Platform } from "@dxos/protocols/proto/dxos/client/services";
@@ -1051,11 +1060,12 @@ var DEVICE_PRESENCE_OFFLINE_TIMEOUT = 2e4;
1051
1060
  var IdentityManager = class {
1052
1061
  // TODO(burdon): IdentityManagerParams.
1053
1062
  // TODO(dmaretskyi): Perhaps this should take/generate the peerKey outside of an initialized identity.
1054
- constructor(_metadataStore, _keyring, _feedStore, _spaceManager, params) {
1063
+ constructor(_metadataStore, _keyring, _feedStore, _spaceManager, params, _callbacks) {
1055
1064
  this._metadataStore = _metadataStore;
1056
1065
  this._keyring = _keyring;
1057
1066
  this._feedStore = _feedStore;
1058
1067
  this._spaceManager = _spaceManager;
1068
+ this._callbacks = _callbacks;
1059
1069
  this.stateUpdate = new Event2();
1060
1070
  const { devicePresenceAnnounceInterval = DEVICE_PRESENCE_ANNOUNCE_INTERVAL, devicePresenceOfflineTimeout = DEVICE_PRESENCE_OFFLINE_TIMEOUT } = params ?? {};
1061
1071
  this._devicePresenceAnnounceInterval = devicePresenceAnnounceInterval;
@@ -1070,7 +1080,7 @@ var IdentityManager = class {
1070
1080
  id: traceId
1071
1081
  }), {
1072
1082
  F: __dxlog_file7,
1073
- L: 104,
1083
+ L: 107,
1074
1084
  S: this,
1075
1085
  C: (f, a) => f(...a)
1076
1086
  });
@@ -1079,7 +1089,7 @@ var IdentityManager = class {
1079
1089
  identityRecord
1080
1090
  }, {
1081
1091
  F: __dxlog_file7,
1082
- L: 107,
1092
+ L: 110,
1083
1093
  S: this,
1084
1094
  C: (f, a) => f(...a)
1085
1095
  });
@@ -1092,7 +1102,7 @@ var IdentityManager = class {
1092
1102
  displayName: this._identity.profileDocument?.displayName
1093
1103
  }, {
1094
1104
  F: __dxlog_file7,
1095
- L: 112,
1105
+ L: 115,
1096
1106
  S: this,
1097
1107
  C: (f, a) => f(...a)
1098
1108
  });
@@ -1102,7 +1112,7 @@ var IdentityManager = class {
1102
1112
  id: traceId
1103
1113
  }), {
1104
1114
  F: __dxlog_file7,
1105
- L: 119,
1115
+ L: 122,
1106
1116
  S: this,
1107
1117
  C: (f, a) => f(...a)
1108
1118
  });
@@ -1110,13 +1120,13 @@ var IdentityManager = class {
1110
1120
  async close() {
1111
1121
  await this._identity?.close(new Context3(void 0, {
1112
1122
  F: __dxlog_file7,
1113
- L: 123
1123
+ L: 126
1114
1124
  }));
1115
1125
  }
1116
1126
  async createIdentity({ displayName, deviceProfile } = {}) {
1117
1127
  invariant3(!this._identity, "Identity already exists.", {
1118
1128
  F: __dxlog_file7,
1119
- L: 128,
1129
+ L: 131,
1120
1130
  S: this,
1121
1131
  A: [
1122
1132
  "!this._identity",
@@ -1125,7 +1135,7 @@ var IdentityManager = class {
1125
1135
  });
1126
1136
  log5("creating identity...", void 0, {
1127
1137
  F: __dxlog_file7,
1128
- L: 129,
1138
+ L: 132,
1129
1139
  S: this,
1130
1140
  C: (f, a) => f(...a)
1131
1141
  });
@@ -1143,13 +1153,13 @@ var IdentityManager = class {
1143
1153
  const identity = await this._constructIdentity(identityRecord);
1144
1154
  await identity.open(new Context3(void 0, {
1145
1155
  F: __dxlog_file7,
1146
- L: 144
1156
+ L: 147
1147
1157
  }));
1148
1158
  {
1149
1159
  const generator = new CredentialGenerator(this._keyring, identityRecord.identityKey, identityRecord.deviceKey);
1150
1160
  invariant3(identityRecord.haloSpace.genesisFeedKey, "Genesis feed key is required.", {
1151
1161
  F: __dxlog_file7,
1152
- L: 148,
1162
+ L: 151,
1153
1163
  S: this,
1154
1164
  A: [
1155
1165
  "identityRecord.haloSpace.genesisFeedKey",
@@ -1158,7 +1168,7 @@ var IdentityManager = class {
1158
1168
  });
1159
1169
  invariant3(identityRecord.haloSpace.dataFeedKey, "Data feed key is required.", {
1160
1170
  F: __dxlog_file7,
1161
- L: 149,
1171
+ L: 152,
1162
1172
  S: this,
1163
1173
  A: [
1164
1174
  "identityRecord.haloSpace.dataFeedKey",
@@ -1197,7 +1207,7 @@ var IdentityManager = class {
1197
1207
  displayName: this._identity.profileDocument?.displayName
1198
1208
  }, {
1199
1209
  F: __dxlog_file7,
1200
- L: 191,
1210
+ L: 194,
1201
1211
  S: this,
1202
1212
  C: (f, a) => f(...a)
1203
1213
  });
@@ -1208,7 +1218,7 @@ var IdentityManager = class {
1208
1218
  profile: identity.profileDocument
1209
1219
  }, {
1210
1220
  F: __dxlog_file7,
1211
- L: 197,
1221
+ L: 200,
1212
1222
  S: this,
1213
1223
  C: (f, a) => f(...a)
1214
1224
  });
@@ -1245,13 +1255,13 @@ var IdentityManager = class {
1245
1255
  params
1246
1256
  }, {
1247
1257
  F: __dxlog_file7,
1248
- L: 235,
1258
+ L: 238,
1249
1259
  S: this,
1250
1260
  C: (f, a) => f(...a)
1251
1261
  });
1252
1262
  invariant3(!this._identity, "Identity already exists.", {
1253
1263
  F: __dxlog_file7,
1254
- L: 236,
1264
+ L: 239,
1255
1265
  S: this,
1256
1266
  A: [
1257
1267
  "!this._identity",
@@ -1272,7 +1282,7 @@ var IdentityManager = class {
1272
1282
  const identity = await this._constructIdentity(identityRecord);
1273
1283
  await identity.open(new Context3(void 0, {
1274
1284
  F: __dxlog_file7,
1275
- L: 251
1285
+ L: 254
1276
1286
  }));
1277
1287
  this._identity = identity;
1278
1288
  await this._metadataStore.setIdentityRecord(identityRecord);
@@ -1282,7 +1292,7 @@ var IdentityManager = class {
1282
1292
  displayName: this._identity.profileDocument?.displayName
1283
1293
  }, {
1284
1294
  F: __dxlog_file7,
1285
- L: 255,
1295
+ L: 258,
1286
1296
  S: this,
1287
1297
  C: (f, a) => f(...a)
1288
1298
  });
@@ -1296,7 +1306,7 @@ var IdentityManager = class {
1296
1306
  deviceKey: identity.deviceKey
1297
1307
  }, {
1298
1308
  F: __dxlog_file7,
1299
- L: 265,
1309
+ L: 268,
1300
1310
  S: this,
1301
1311
  C: (f, a) => f(...a)
1302
1312
  });
@@ -1308,7 +1318,7 @@ var IdentityManager = class {
1308
1318
  async updateProfile(profile) {
1309
1319
  invariant3(this._identity, "Identity not initialized.", {
1310
1320
  F: __dxlog_file7,
1311
- L: 273,
1321
+ L: 276,
1312
1322
  S: this,
1313
1323
  A: [
1314
1324
  "this._identity",
@@ -1339,7 +1349,7 @@ var IdentityManager = class {
1339
1349
  async updateDeviceProfile(profile) {
1340
1350
  invariant3(this._identity, "Identity not initialized.", {
1341
1351
  F: __dxlog_file7,
1342
- L: 290,
1352
+ L: 293,
1343
1353
  S: this,
1344
1354
  A: [
1345
1355
  "this._identity",
@@ -1375,7 +1385,7 @@ var IdentityManager = class {
1375
1385
  async _constructIdentity(identityRecord) {
1376
1386
  invariant3(!this._identity, void 0, {
1377
1387
  F: __dxlog_file7,
1378
- L: 316,
1388
+ L: 319,
1379
1389
  S: this,
1380
1390
  A: [
1381
1391
  "!this._identity",
@@ -1386,7 +1396,7 @@ var IdentityManager = class {
1386
1396
  identityRecord
1387
1397
  }, {
1388
1398
  F: __dxlog_file7,
1389
- L: 317,
1399
+ L: 320,
1390
1400
  S: this,
1391
1401
  C: (f, a) => f(...a)
1392
1402
  });
@@ -1401,7 +1411,7 @@ var IdentityManager = class {
1401
1411
  });
1402
1412
  invariant3(identityRecord.haloSpace.controlFeedKey, void 0, {
1403
1413
  F: __dxlog_file7,
1404
- L: 330,
1414
+ L: 333,
1405
1415
  S: this,
1406
1416
  A: [
1407
1417
  "identityRecord.haloSpace.controlFeedKey",
@@ -1413,7 +1423,7 @@ var IdentityManager = class {
1413
1423
  });
1414
1424
  invariant3(identityRecord.haloSpace.dataFeedKey, void 0, {
1415
1425
  F: __dxlog_file7,
1416
- L: 334,
1426
+ L: 337,
1417
1427
  S: this,
1418
1428
  A: [
1419
1429
  "identityRecord.haloSpace.dataFeedKey",
@@ -1427,6 +1437,7 @@ var IdentityManager = class {
1427
1437
  const space = await this._constructSpace({
1428
1438
  spaceRecord: identityRecord.haloSpace,
1429
1439
  swarmIdentity: {
1440
+ identityKey: identityRecord.identityKey,
1430
1441
  peerKey: identityRecord.deviceKey,
1431
1442
  credentialProvider: createAuthProvider(createCredentialSignerWithKey2(this._keyring, identityRecord.deviceKey)),
1432
1443
  credentialAuthenticator: deferFunction(() => identity.authVerifier.verifier)
@@ -1447,10 +1458,11 @@ var IdentityManager = class {
1447
1458
  identityKey: identityRecord.identityKey
1448
1459
  }, {
1449
1460
  F: __dxlog_file7,
1450
- L: 360,
1461
+ L: 364,
1451
1462
  S: this,
1452
1463
  C: (f, a) => f(...a)
1453
1464
  });
1465
+ this._callbacks?.onIdentityConstruction?.(identity);
1454
1466
  if (identityRecord.haloSpace.controlTimeframe) {
1455
1467
  identity.controlPipeline.state.setTargetTimeframe(identityRecord.haloSpace.controlTimeframe);
1456
1468
  }
@@ -1472,7 +1484,7 @@ var IdentityManager = class {
1472
1484
  onAuthFailure: () => {
1473
1485
  log5.warn("auth failure", void 0, {
1474
1486
  F: __dxlog_file7,
1475
- L: 385,
1487
+ L: 390,
1476
1488
  S: this,
1477
1489
  C: (f, a) => f(...a)
1478
1490
  });
@@ -2796,7 +2808,6 @@ var InvitationsHandler = class {
2796
2808
  }
2797
2809
  const swarmConnection = await this._networkManager.joinSwarm({
2798
2810
  topic: invitation.swarmKey,
2799
- peerId: PublicKey7.random(),
2800
2811
  protocolProvider: createTeleportProtocolFactory(async (teleport) => {
2801
2812
  teleport.addExtension("dxos.halo.invitations", extensionFactory());
2802
2813
  }, this._defaultTeleportParams),
@@ -2873,7 +2884,7 @@ var InvitationsHandler = class {
2873
2884
  oldState: stateToString(invitation.state)
2874
2885
  }, {
2875
2886
  F: __dxlog_file13,
2876
- L: 461,
2887
+ L: 460,
2877
2888
  S: this,
2878
2889
  C: (f, a) => f(...a)
2879
2890
  });
@@ -2884,7 +2895,7 @@ var InvitationsHandler = class {
2884
2895
  oldState: stateToString(invitation.state)
2885
2896
  }, {
2886
2897
  F: __dxlog_file13,
2887
- L: 467,
2898
+ L: 466,
2888
2899
  S: this,
2889
2900
  C: (f, a) => f(...a)
2890
2901
  });
@@ -2903,7 +2914,7 @@ var InvitationsHandler = class {
2903
2914
  for (let attempt = 1; attempt <= MAX_OTP_ATTEMPTS; attempt++) {
2904
2915
  log10("guest waiting for authentication code...", void 0, {
2905
2916
  F: __dxlog_file13,
2906
- L: 492,
2917
+ L: 491,
2907
2918
  S: this,
2908
2919
  C: (f, a) => f(...a)
2909
2920
  });
@@ -2911,7 +2922,7 @@ var InvitationsHandler = class {
2911
2922
  const authCode = await authenticated.wait(options);
2912
2923
  log10("sending authentication request", void 0, {
2913
2924
  F: __dxlog_file13,
2914
- L: 496,
2925
+ L: 495,
2915
2926
  S: this,
2916
2927
  C: (f, a) => f(...a)
2917
2928
  });
@@ -2930,7 +2941,7 @@ var InvitationsHandler = class {
2930
2941
  attempt
2931
2942
  }, {
2932
2943
  F: __dxlog_file13,
2933
- L: 507,
2944
+ L: 506,
2934
2945
  S: this,
2935
2946
  C: (f, a) => f(...a)
2936
2947
  });
@@ -2948,7 +2959,7 @@ var InvitationsHandler = class {
2948
2959
  }
2949
2960
  log10("sending authentication request", void 0, {
2950
2961
  F: __dxlog_file13,
2951
- L: 526,
2962
+ L: 525,
2952
2963
  S: this,
2953
2964
  C: (f, a) => f(...a)
2954
2965
  });
@@ -4860,7 +4871,7 @@ var DataSpace = class {
4860
4871
  constructor(params) {
4861
4872
  this._ctx = new Context8(void 0, {
4862
4873
  F: __dxlog_file20,
4863
- L: 87
4874
+ L: 89
4864
4875
  });
4865
4876
  this._notarizationPlugin = new NotarizationPlugin();
4866
4877
  this._cache = void 0;
@@ -4897,7 +4908,7 @@ var DataSpace = class {
4897
4908
  authTimeout: AUTH_TIMEOUT2
4898
4909
  });
4899
4910
  this._cache = params.cache;
4900
- if (params.edgeConnection) {
4911
+ if (params.edgeConnection && params.edgeFeatures?.feedReplicator) {
4901
4912
  this._edgeFeedReplicator = new EdgeFeedReplicator({
4902
4913
  messenger: params.edgeConnection,
4903
4914
  spaceId: this.id
@@ -4908,7 +4919,7 @@ var DataSpace = class {
4908
4919
  state: SpaceState2[this._state]
4909
4920
  }, {
4910
4921
  F: __dxlog_file20,
4911
- L: 157,
4922
+ L: 159,
4912
4923
  S: this,
4913
4924
  C: (f, a) => f(...a)
4914
4925
  });
@@ -4967,7 +4978,7 @@ var DataSpace = class {
4967
4978
  }
4968
4979
  await this._inner.open(new Context8(void 0, {
4969
4980
  F: __dxlog_file20,
4970
- L: 231
4981
+ L: 233
4971
4982
  }));
4972
4983
  await this._edgeFeedReplicator?.open();
4973
4984
  this._state = SpaceState2.SPACE_CONTROL_ONLY;
@@ -4975,7 +4986,7 @@ var DataSpace = class {
4975
4986
  state: SpaceState2[this._state]
4976
4987
  }, {
4977
4988
  F: __dxlog_file20,
4978
- L: 236,
4989
+ L: 238,
4979
4990
  S: this,
4980
4991
  C: (f, a) => f(...a)
4981
4992
  });
@@ -4995,14 +5006,14 @@ var DataSpace = class {
4995
5006
  state: SpaceState2[this._state]
4996
5007
  }, {
4997
5008
  F: __dxlog_file20,
4998
- L: 255,
5009
+ L: 257,
4999
5010
  S: this,
5000
5011
  C: (f, a) => f(...a)
5001
5012
  });
5002
5013
  await this._ctx.dispose();
5003
5014
  this._ctx = new Context8(void 0, {
5004
5015
  F: __dxlog_file20,
5005
- L: 257
5016
+ L: 259
5006
5017
  });
5007
5018
  if (this._edgeFeedReplicator) {
5008
5019
  this.inner.protocol.feedAdded.remove(this._onFeedAdded);
@@ -5035,7 +5046,7 @@ var DataSpace = class {
5035
5046
  if (err instanceof CancelledError || err instanceof ContextDisposedError3) {
5036
5047
  log17("data pipeline initialization cancelled", err, {
5037
5048
  F: __dxlog_file20,
5038
- L: 295,
5049
+ L: 297,
5039
5050
  S: this,
5040
5051
  C: (f, a) => f(...a)
5041
5052
  });
@@ -5043,7 +5054,7 @@ var DataSpace = class {
5043
5054
  }
5044
5055
  log17.error("Error initializing data pipeline", err, {
5045
5056
  F: __dxlog_file20,
5046
- L: 299,
5057
+ L: 301,
5047
5058
  S: this,
5048
5059
  C: (f, a) => f(...a)
5049
5060
  });
@@ -5052,7 +5063,7 @@ var DataSpace = class {
5052
5063
  state: SpaceState2[this._state]
5053
5064
  }, {
5054
5065
  F: __dxlog_file20,
5055
- L: 301,
5066
+ L: 303,
5056
5067
  S: this,
5057
5068
  C: (f, a) => f(...a)
5058
5069
  });
@@ -5072,7 +5083,7 @@ var DataSpace = class {
5072
5083
  state: SpaceState2[this._state]
5073
5084
  }, {
5074
5085
  F: __dxlog_file20,
5075
- L: 317,
5086
+ L: 319,
5076
5087
  S: this,
5077
5088
  C: (f, a) => f(...a)
5078
5089
  });
@@ -5089,7 +5100,7 @@ var DataSpace = class {
5089
5100
  state: SpaceState2[this._state]
5090
5101
  }, {
5091
5102
  F: __dxlog_file20,
5092
- L: 336,
5103
+ L: 338,
5093
5104
  S: this,
5094
5105
  C: (f, a) => f(...a)
5095
5106
  });
@@ -5105,7 +5116,7 @@ var DataSpace = class {
5105
5116
  await this._createWritableFeeds();
5106
5117
  log17("writable feeds created", void 0, {
5107
5118
  F: __dxlog_file20,
5108
- L: 352,
5119
+ L: 354,
5109
5120
  S: this,
5110
5121
  C: (f, a) => f(...a)
5111
5122
  });
@@ -5168,7 +5179,7 @@ var DataSpace = class {
5168
5179
  rootUrl
5169
5180
  }, {
5170
5181
  F: __dxlog_file20,
5171
- L: 418,
5182
+ L: 420,
5172
5183
  S: this,
5173
5184
  C: (f, a) => f(...a)
5174
5185
  });
@@ -5220,7 +5231,7 @@ var DataSpace = class {
5220
5231
  err
5221
5232
  }, {
5222
5233
  F: __dxlog_file20,
5223
- L: 461,
5234
+ L: 463,
5224
5235
  S: this,
5225
5236
  C: (f, a) => f(...a)
5226
5237
  });
@@ -5310,7 +5321,7 @@ var DataSpace = class {
5310
5321
  state: SpaceState2[this._state]
5311
5322
  }, {
5312
5323
  F: __dxlog_file20,
5313
- L: 543,
5324
+ L: 545,
5314
5325
  S: this,
5315
5326
  C: (f, a) => f(...a)
5316
5327
  });
@@ -5478,6 +5489,7 @@ var DataSpaceManager = class extends Resource4 {
5478
5489
  this._spaces = new ComplexMap4(PublicKey12.hash);
5479
5490
  this._instanceId = PublicKey12.random().toHex();
5480
5491
  this._edgeConnection = void 0;
5492
+ this._edgeFeatures = void 0;
5481
5493
  this._meshReplicator = void 0;
5482
5494
  this._echoEdgeReplicator = void 0;
5483
5495
  this._runtimeParams = void 0;
@@ -5490,6 +5502,7 @@ var DataSpaceManager = class extends Resource4 {
5490
5502
  this._meshReplicator = params.meshReplicator;
5491
5503
  this._invitationsManager = params.invitationsManager;
5492
5504
  this._edgeConnection = params.edgeConnection;
5505
+ this._edgeFeatures = params.edgeFeatures;
5493
5506
  this._echoEdgeReplicator = params.echoEdgeReplicator;
5494
5507
  this._runtimeParams = params.runtimeParams;
5495
5508
  trace7.diagnostic({
@@ -5522,7 +5535,7 @@ var DataSpaceManager = class extends Resource4 {
5522
5535
  async _open() {
5523
5536
  log18("open", void 0, {
5524
5537
  F: __dxlog_file21,
5525
- L: 187,
5538
+ L: 192,
5526
5539
  S: this,
5527
5540
  C: (f, a) => f(...a)
5528
5541
  });
@@ -5530,7 +5543,7 @@ var DataSpaceManager = class extends Resource4 {
5530
5543
  id: this._instanceId
5531
5544
  }), {
5532
5545
  F: __dxlog_file21,
5533
- L: 188,
5546
+ L: 193,
5534
5547
  S: this,
5535
5548
  C: (f, a) => f(...a)
5536
5549
  });
@@ -5538,7 +5551,7 @@ var DataSpaceManager = class extends Resource4 {
5538
5551
  spaces: this._metadataStore.spaces.length
5539
5552
  }, {
5540
5553
  F: __dxlog_file21,
5541
- L: 189,
5554
+ L: 194,
5542
5555
  S: this,
5543
5556
  C: (f, a) => f(...a)
5544
5557
  });
@@ -5548,7 +5561,7 @@ var DataSpaceManager = class extends Resource4 {
5548
5561
  spaceMetadata
5549
5562
  }, {
5550
5563
  F: __dxlog_file21,
5551
- L: 193,
5564
+ L: 198,
5552
5565
  S: this,
5553
5566
  C: (f, a) => f(...a)
5554
5567
  });
@@ -5559,7 +5572,7 @@ var DataSpaceManager = class extends Resource4 {
5559
5572
  err
5560
5573
  }, {
5561
5574
  F: __dxlog_file21,
5562
- L: 196,
5575
+ L: 201,
5563
5576
  S: this,
5564
5577
  C: (f, a) => f(...a)
5565
5578
  });
@@ -5570,7 +5583,7 @@ var DataSpaceManager = class extends Resource4 {
5570
5583
  id: this._instanceId
5571
5584
  }), {
5572
5585
  F: __dxlog_file21,
5573
- L: 202,
5586
+ L: 207,
5574
5587
  S: this,
5575
5588
  C: (f, a) => f(...a)
5576
5589
  });
@@ -5578,7 +5591,7 @@ var DataSpaceManager = class extends Resource4 {
5578
5591
  async _close() {
5579
5592
  log18("close", void 0, {
5580
5593
  F: __dxlog_file21,
5581
- L: 207,
5594
+ L: 212,
5582
5595
  S: this,
5583
5596
  C: (f, a) => f(...a)
5584
5597
  });
@@ -5593,7 +5606,7 @@ var DataSpaceManager = class extends Resource4 {
5593
5606
  async createSpace() {
5594
5607
  invariant15(this._lifecycleState === LifecycleState.OPEN, "Not open.", {
5595
5608
  F: __dxlog_file21,
5596
- L: 219,
5609
+ L: 224,
5597
5610
  S: this,
5598
5611
  A: [
5599
5612
  "this._lifecycleState === LifecycleState.OPEN",
@@ -5614,7 +5627,7 @@ var DataSpaceManager = class extends Resource4 {
5614
5627
  spaceKey
5615
5628
  }, {
5616
5629
  F: __dxlog_file21,
5617
- L: 231,
5630
+ L: 236,
5618
5631
  S: this,
5619
5632
  C: (f, a) => f(...a)
5620
5633
  });
@@ -5626,7 +5639,7 @@ var DataSpaceManager = class extends Resource4 {
5626
5639
  const memberCredential = credentials[1];
5627
5640
  invariant15(getCredentialAssertion3(memberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
5628
5641
  F: __dxlog_file21,
5629
- L: 241,
5642
+ L: 246,
5630
5643
  S: this,
5631
5644
  A: [
5632
5645
  "getCredentialAssertion(memberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
@@ -5658,7 +5671,7 @@ var DataSpaceManager = class extends Resource4 {
5658
5671
  spaceId: space.id
5659
5672
  }, {
5660
5673
  F: __dxlog_file21,
5661
- L: 266,
5674
+ L: 271,
5662
5675
  S: this,
5663
5676
  C: (f, a) => f(...a)
5664
5677
  });
@@ -5693,7 +5706,7 @@ var DataSpaceManager = class extends Resource4 {
5693
5706
  const automergeIndex = space.automergeSpaceState.rootUrl;
5694
5707
  invariant15(automergeIndex, void 0, {
5695
5708
  F: __dxlog_file21,
5696
- L: 299,
5709
+ L: 304,
5697
5710
  S: this,
5698
5711
  A: [
5699
5712
  "automergeIndex",
@@ -5710,13 +5723,13 @@ var DataSpaceManager = class extends Resource4 {
5710
5723
  opts
5711
5724
  }, {
5712
5725
  F: __dxlog_file21,
5713
- L: 308,
5726
+ L: 313,
5714
5727
  S: this,
5715
5728
  C: (f, a) => f(...a)
5716
5729
  });
5717
5730
  invariant15(this._lifecycleState === LifecycleState.OPEN, "Not open.", {
5718
5731
  F: __dxlog_file21,
5719
- L: 309,
5732
+ L: 314,
5720
5733
  S: this,
5721
5734
  A: [
5722
5735
  "this._lifecycleState === LifecycleState.OPEN",
@@ -5725,7 +5738,7 @@ var DataSpaceManager = class extends Resource4 {
5725
5738
  });
5726
5739
  invariant15(!this._spaces.has(opts.spaceKey), "Space already exists.", {
5727
5740
  F: __dxlog_file21,
5728
- L: 310,
5741
+ L: 315,
5729
5742
  S: this,
5730
5743
  A: [
5731
5744
  "!this._spaces.has(opts.spaceKey)",
@@ -5749,7 +5762,7 @@ var DataSpaceManager = class extends Resource4 {
5749
5762
  const space = this._spaceManager.spaces.get(options.spaceKey);
5750
5763
  invariant15(space, void 0, {
5751
5764
  F: __dxlog_file21,
5752
- L: 330,
5765
+ L: 335,
5753
5766
  S: this,
5754
5767
  A: [
5755
5768
  "space",
@@ -5762,7 +5775,7 @@ var DataSpaceManager = class extends Resource4 {
5762
5775
  const credentials = await createAdmissionCredentials(this._signingContext.credentialSigner, options.identityKey, space.key, space.genesisFeedKey, options.role, space.spaceState.membershipChainHeads, options.profile, options.delegationCredentialId);
5763
5776
  invariant15(credentials[0].credential, void 0, {
5764
5777
  F: __dxlog_file21,
5765
- L: 349,
5778
+ L: 354,
5766
5779
  S: this,
5767
5780
  A: [
5768
5781
  "credentials[0].credential",
@@ -5772,7 +5785,7 @@ var DataSpaceManager = class extends Resource4 {
5772
5785
  const spaceMemberCredential = credentials[0].credential.credential;
5773
5786
  invariant15(getCredentialAssertion3(spaceMemberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
5774
5787
  F: __dxlog_file21,
5775
- L: 351,
5788
+ L: 356,
5776
5789
  S: this,
5777
5790
  A: [
5778
5791
  "getCredentialAssertion(spaceMemberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
@@ -5799,6 +5812,7 @@ var DataSpaceManager = class extends Resource4 {
5799
5812
  identityKey: this._signingContext.identityKey,
5800
5813
  timeout: 15e3,
5801
5814
  swarmIdentity: {
5815
+ identityKey: this._signingContext.identityKey,
5802
5816
  peerKey: this._signingContext.deviceKey,
5803
5817
  credentialProvider: createAuthProvider(this._signingContext.credentialSigner),
5804
5818
  credentialAuthenticator: async () => true
@@ -5810,7 +5824,7 @@ var DataSpaceManager = class extends Resource4 {
5810
5824
  metadata
5811
5825
  }, {
5812
5826
  F: __dxlog_file21,
5813
- L: 386,
5827
+ L: 392,
5814
5828
  S: this,
5815
5829
  C: (f, a) => f(...a)
5816
5830
  });
@@ -5833,6 +5847,7 @@ var DataSpaceManager = class extends Resource4 {
5833
5847
  const space = await this._spaceManager.constructSpace({
5834
5848
  metadata,
5835
5849
  swarmIdentity: {
5850
+ identityKey: this._signingContext.identityKey,
5836
5851
  peerKey: this._signingContext.deviceKey,
5837
5852
  credentialProvider: createAuthProvider(this._signingContext.credentialSigner),
5838
5853
  credentialAuthenticator: deferFunction2(() => dataSpace.authVerifier.verifier)
@@ -5853,7 +5868,7 @@ var DataSpaceManager = class extends Resource4 {
5853
5868
  err
5854
5869
  }, {
5855
5870
  F: __dxlog_file21,
5856
- L: 427,
5871
+ L: 434,
5857
5872
  S: this,
5858
5873
  C: (f, a) => f(...a)
5859
5874
  });
@@ -5863,7 +5878,7 @@ var DataSpaceManager = class extends Resource4 {
5863
5878
  onAuthFailure: () => {
5864
5879
  log18.warn("auth failure", void 0, {
5865
5880
  F: __dxlog_file21,
5866
- L: 432,
5881
+ L: 439,
5867
5882
  S: this,
5868
5883
  C: (f, a) => f(...a)
5869
5884
  });
@@ -5896,7 +5911,7 @@ var DataSpaceManager = class extends Resource4 {
5896
5911
  space: space.key
5897
5912
  }, {
5898
5913
  F: __dxlog_file21,
5899
- L: 459,
5914
+ L: 466,
5900
5915
  S: this,
5901
5916
  C: (f, a) => f(...a)
5902
5917
  });
@@ -5907,7 +5922,7 @@ var DataSpaceManager = class extends Resource4 {
5907
5922
  open: this._lifecycleState === LifecycleState.OPEN
5908
5923
  }, {
5909
5924
  F: __dxlog_file21,
5910
- L: 462,
5925
+ L: 469,
5911
5926
  S: this,
5912
5927
  C: (f, a) => f(...a)
5913
5928
  });
@@ -5926,14 +5941,15 @@ var DataSpaceManager = class extends Resource4 {
5926
5941
  space: space.key
5927
5942
  }, {
5928
5943
  F: __dxlog_file21,
5929
- L: 470,
5944
+ L: 477,
5930
5945
  S: this,
5931
5946
  C: (f, a) => f(...a)
5932
5947
  });
5933
5948
  }
5934
5949
  },
5935
5950
  cache: metadata.cache,
5936
- edgeConnection: this._edgeConnection
5951
+ edgeConnection: this._edgeConnection,
5952
+ edgeFeatures: this._edgeFeatures
5937
5953
  });
5938
5954
  dataSpace.postOpen.append(async () => {
5939
5955
  await this._echoEdgeReplicator?.connectToSpace(dataSpace.id);
@@ -5959,7 +5975,7 @@ var DataSpaceManager = class extends Resource4 {
5959
5975
  space: space.key
5960
5976
  }, {
5961
5977
  F: __dxlog_file21,
5962
- L: 500,
5978
+ L: 508,
5963
5979
  S: this,
5964
5980
  C: (f, a) => f(...a)
5965
5981
  });
@@ -5992,7 +6008,7 @@ var DataSpaceManager = class extends Resource4 {
5992
6008
  closedSessions
5993
6009
  }, {
5994
6010
  F: __dxlog_file21,
5995
- L: 526,
6011
+ L: 534,
5996
6012
  S: this,
5997
6013
  C: (f, a) => f(...a)
5998
6014
  });
@@ -6007,7 +6023,7 @@ var DataSpaceManager = class extends Resource4 {
6007
6023
  peerId: peerState.peerId
6008
6024
  }, {
6009
6025
  F: __dxlog_file21,
6010
- L: 540,
6026
+ L: 548,
6011
6027
  S: this,
6012
6028
  C: (f, a) => f(...a)
6013
6029
  });
@@ -6436,7 +6452,7 @@ function _ts_decorate7(decorators, target, key, desc) {
6436
6452
  }
6437
6453
  var __dxlog_file23 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/service-context.ts";
6438
6454
  var ServiceContext = class extends Resource5 {
6439
- constructor(storage, level, networkManager, signalManager, _edgeConnection, _runtimeParams) {
6455
+ constructor(storage, level, networkManager, signalManager, _edgeConnection, _runtimeParams, _edgeFeatures) {
6440
6456
  super();
6441
6457
  this.storage = storage;
6442
6458
  this.level = level;
@@ -6444,6 +6460,7 @@ var ServiceContext = class extends Resource5 {
6444
6460
  this.signalManager = signalManager;
6445
6461
  this._edgeConnection = _edgeConnection;
6446
6462
  this._runtimeParams = _runtimeParams;
6463
+ this._edgeFeatures = _edgeFeatures;
6447
6464
  this.initialized = new Trigger9();
6448
6465
  this._meshReplicator = void 0;
6449
6466
  this._echoEdgeReplicator = void 0;
@@ -6469,17 +6486,41 @@ var ServiceContext = class extends Resource5 {
6469
6486
  metadataStore: this.metadataStore,
6470
6487
  disableP2pReplication: this._runtimeParams?.disableP2pReplication
6471
6488
  });
6472
- this.identityManager = new IdentityManager(this.metadataStore, this.keyring, this.feedStore, this.spaceManager, this._runtimeParams);
6489
+ this.identityManager = new IdentityManager(this.metadataStore, this.keyring, this.feedStore, this.spaceManager, this._runtimeParams, {
6490
+ onIdentityConstruction: (identity) => {
6491
+ if (this._edgeConnection) {
6492
+ log20.info("Setting identity on edge connection", {
6493
+ identity: identity.identityKey.toHex(),
6494
+ oldIdentity: this._edgeConnection.identityKey.toHex(),
6495
+ swarms: this.networkManager.topics
6496
+ }, {
6497
+ F: __dxlog_file23,
6498
+ L: 128,
6499
+ S: this,
6500
+ C: (f, a) => f(...a)
6501
+ });
6502
+ this._edgeConnection.setIdentity({
6503
+ deviceKey: identity.deviceKey,
6504
+ identityKey: identity.identityKey
6505
+ });
6506
+ this.networkManager.setPeerInfo({
6507
+ identityKey: identity.identityKey.toHex(),
6508
+ peerKey: identity.deviceKey.toHex()
6509
+ });
6510
+ }
6511
+ }
6512
+ });
6473
6513
  this.echoHost = new EchoHost({
6474
6514
  kv: this.level
6475
6515
  });
6516
+ this._meshReplicator = new MeshEchoReplicator();
6476
6517
  this.invitations = new InvitationsHandler(this.networkManager, _runtimeParams?.invitationConnectionDefaultParams);
6477
6518
  this.invitationsManager = new InvitationsManager(this.invitations, (invitation) => this.getInvitationHandler(invitation), this.metadataStore);
6478
6519
  this._handlerFactories.set(Invitation8.Kind.DEVICE, () => new DeviceInvitationProtocol(this.keyring, () => this.identityManager.identity ?? failUndefined2(), this._acceptIdentity.bind(this)));
6479
6520
  if (!this._runtimeParams?.disableP2pReplication) {
6480
6521
  this._meshReplicator = new MeshEchoReplicator();
6481
6522
  }
6482
- if (this._edgeConnection) {
6523
+ if (this._edgeConnection && this._edgeFeatures?.echoReplicator) {
6483
6524
  this._echoEdgeReplicator = new EchoEdgeReplicator({
6484
6525
  edgeConnection: this._edgeConnection
6485
6526
  });
@@ -6489,7 +6530,7 @@ var ServiceContext = class extends Resource5 {
6489
6530
  await this._checkStorageVersion();
6490
6531
  log20("opening...", void 0, {
6491
6532
  F: __dxlog_file23,
6492
- L: 160,
6533
+ L: 186,
6493
6534
  S: this,
6494
6535
  C: (f, a) => f(...a)
6495
6536
  });
@@ -6497,13 +6538,13 @@ var ServiceContext = class extends Resource5 {
6497
6538
  id: this._instanceId
6498
6539
  }), {
6499
6540
  F: __dxlog_file23,
6500
- L: 161,
6541
+ L: 187,
6501
6542
  S: this,
6502
6543
  C: (f, a) => f(...a)
6503
6544
  });
6545
+ await this._edgeConnection?.open();
6504
6546
  await this.signalManager.open();
6505
6547
  await this.networkManager.open();
6506
- await this._edgeConnection?.open();
6507
6548
  await this.echoHost.open(ctx);
6508
6549
  if (this._meshReplicator) {
6509
6550
  await this.echoHost.addReplicator(this._meshReplicator);
@@ -6522,7 +6563,7 @@ var ServiceContext = class extends Resource5 {
6522
6563
  count: loadedInvitations.invitations?.length
6523
6564
  }, {
6524
6565
  F: __dxlog_file23,
6525
- L: 183,
6566
+ L: 210,
6526
6567
  S: this,
6527
6568
  C: (f, a) => f(...a)
6528
6569
  });
@@ -6530,13 +6571,13 @@ var ServiceContext = class extends Resource5 {
6530
6571
  id: this._instanceId
6531
6572
  }), {
6532
6573
  F: __dxlog_file23,
6533
- L: 185,
6574
+ L: 212,
6534
6575
  S: this,
6535
6576
  C: (f, a) => f(...a)
6536
6577
  });
6537
6578
  log20("opened", void 0, {
6538
6579
  F: __dxlog_file23,
6539
- L: 186,
6580
+ L: 213,
6540
6581
  S: this,
6541
6582
  C: (f, a) => f(...a)
6542
6583
  });
@@ -6544,7 +6585,7 @@ var ServiceContext = class extends Resource5 {
6544
6585
  async _close(ctx) {
6545
6586
  log20("closing...", void 0, {
6546
6587
  F: __dxlog_file23,
6547
- L: 190,
6588
+ L: 217,
6548
6589
  S: this,
6549
6590
  C: (f, a) => f(...a)
6550
6591
  });
@@ -6562,7 +6603,7 @@ var ServiceContext = class extends Resource5 {
6562
6603
  await this._edgeConnection?.close();
6563
6604
  log20("closed", void 0, {
6564
6605
  F: __dxlog_file23,
6565
- L: 205,
6606
+ L: 232,
6566
6607
  S: this,
6567
6608
  C: (f, a) => f(...a)
6568
6609
  });
@@ -6571,7 +6612,7 @@ var ServiceContext = class extends Resource5 {
6571
6612
  const identity = await this.identityManager.createIdentity(params);
6572
6613
  await this._initialize(new Context9(void 0, {
6573
6614
  F: __dxlog_file23,
6574
- L: 210
6615
+ L: 237
6575
6616
  }));
6576
6617
  return identity;
6577
6618
  }
@@ -6579,7 +6620,7 @@ var ServiceContext = class extends Resource5 {
6579
6620
  const factory = this._handlerFactories.get(invitation.kind);
6580
6621
  invariant17(factory, `Unknown invitation kind: ${invitation.kind}`, {
6581
6622
  F: __dxlog_file23,
6582
- L: 216,
6623
+ L: 243,
6583
6624
  S: this,
6584
6625
  A: [
6585
6626
  "factory",
@@ -6600,7 +6641,7 @@ var ServiceContext = class extends Resource5 {
6600
6641
  const identity = await this.identityManager.acceptIdentity(params);
6601
6642
  await this._initialize(new Context9(void 0, {
6602
6643
  F: __dxlog_file23,
6603
- L: 232
6644
+ L: 259
6604
6645
  }));
6605
6646
  return identity;
6606
6647
  }
@@ -6614,7 +6655,7 @@ var ServiceContext = class extends Resource5 {
6614
6655
  async _initialize(ctx) {
6615
6656
  log20("initializing spaces...", void 0, {
6616
6657
  F: __dxlog_file23,
6617
- L: 247,
6658
+ L: 274,
6618
6659
  S: this,
6619
6660
  C: (f, a) => f(...a)
6620
6661
  });
@@ -6643,13 +6684,14 @@ var ServiceContext = class extends Resource5 {
6643
6684
  edgeConnection: this._edgeConnection,
6644
6685
  echoEdgeReplicator: this._echoEdgeReplicator,
6645
6686
  meshReplicator: this._meshReplicator,
6646
- runtimeParams: this._runtimeParams
6687
+ runtimeParams: this._runtimeParams,
6688
+ edgeFeatures: this._edgeFeatures
6647
6689
  });
6648
6690
  await this.dataSpaceManager.open();
6649
6691
  this._handlerFactories.set(Invitation8.Kind.SPACE, (invitation) => {
6650
6692
  invariant17(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
6651
6693
  F: __dxlog_file23,
6652
- L: 275,
6694
+ L: 303,
6653
6695
  S: this,
6654
6696
  A: [
6655
6697
  "this.dataSpaceManager",
@@ -6673,7 +6715,7 @@ var ServiceContext = class extends Resource5 {
6673
6715
  details: assertion
6674
6716
  }, {
6675
6717
  F: __dxlog_file23,
6676
- L: 291,
6718
+ L: 319,
6677
6719
  S: this,
6678
6720
  C: (f, a) => f(...a)
6679
6721
  });
@@ -6684,7 +6726,7 @@ var ServiceContext = class extends Resource5 {
6684
6726
  details: assertion
6685
6727
  }, {
6686
6728
  F: __dxlog_file23,
6687
- L: 295,
6729
+ L: 323,
6688
6730
  S: this,
6689
6731
  C: (f, a) => f(...a)
6690
6732
  });
@@ -6695,7 +6737,7 @@ var ServiceContext = class extends Resource5 {
6695
6737
  details: assertion
6696
6738
  }, {
6697
6739
  F: __dxlog_file23,
6698
- L: 300,
6740
+ L: 328,
6699
6741
  S: this,
6700
6742
  C: (f, a) => f(...a)
6701
6743
  });
@@ -6706,7 +6748,7 @@ var ServiceContext = class extends Resource5 {
6706
6748
  } catch (err) {
6707
6749
  log20.catch(err, void 0, {
6708
6750
  F: __dxlog_file23,
6709
- L: 306,
6751
+ L: 334,
6710
6752
  S: this,
6711
6753
  C: (f, a) => f(...a)
6712
6754
  });
@@ -6992,7 +7034,7 @@ import { EdgeClient } from "@dxos/edge-client";
6992
7034
  import { invariant as invariant20 } from "@dxos/invariant";
6993
7035
  import { PublicKey as PublicKey17 } from "@dxos/keys";
6994
7036
  import { log as log23 } from "@dxos/log";
6995
- import { WebsocketSignalManager } from "@dxos/messaging";
7037
+ import { EdgeSignalManager, WebsocketSignalManager } from "@dxos/messaging";
6996
7038
  import { SwarmNetworkManager, createIceProvider, createSimplePeerTransportFactory } from "@dxos/network-manager";
6997
7039
  import { trace as trace10 } from "@dxos/protocols";
6998
7040
  import { SystemStatus } from "@dxos/protocols/proto/dxos/client/services";
@@ -7301,18 +7343,18 @@ var NetworkServiceImpl = class {
7301
7343
  next({
7302
7344
  swarm: this.networkManager.connectionState,
7303
7345
  connectionInfo: this.networkManager.connectionLog?.swarms,
7304
- signaling: this.signalManager.getStatus().map(({ host, state }) => ({
7346
+ signaling: this.signalManager.getStatus?.().map(({ host, state }) => ({
7305
7347
  server: host,
7306
7348
  state
7307
7349
  }))
7308
7350
  });
7309
7351
  };
7310
7352
  const unsubscribeSwarm = this.networkManager.connectionStateChanged.on(() => update());
7311
- const unsubscribeSignal = this.signalManager.statusChanged.on(() => update());
7353
+ const unsubscribeSignal = this.signalManager.statusChanged?.on(() => update());
7312
7354
  update();
7313
7355
  return () => {
7314
7356
  unsubscribeSwarm();
7315
- unsubscribeSignal();
7357
+ unsubscribeSignal?.();
7316
7358
  };
7317
7359
  });
7318
7360
  }
@@ -7522,13 +7564,21 @@ var ClientServicesHost = class {
7522
7564
  C: (f, a) => f(...a)
7523
7565
  });
7524
7566
  }
7567
+ const edgeEndpoint = config?.get("runtime.services.edge.url");
7568
+ if (edgeEndpoint) {
7569
+ this._edgeConnection = new EdgeClient(PublicKey17.random(), PublicKey17.random(), {
7570
+ socketEndpoint: edgeEndpoint
7571
+ });
7572
+ }
7525
7573
  const { connectionLog = true, transportFactory = createSimplePeerTransportFactory({
7526
7574
  iceServers: this._config?.get("runtime.services.ice")
7527
- }, this._config?.get("runtime.services.iceProviders") && createIceProvider(this._config.get("runtime.services.iceProviders"))), signalManager = new WebsocketSignalManager(this._config?.get("runtime.services.signaling") ?? []) } = options;
7575
+ }, this._config?.get("runtime.services.iceProviders") && createIceProvider(this._config.get("runtime.services.iceProviders"))), signalManager = this._edgeConnection && this._config?.get("runtime.client.edgeFeatures")?.signaling ? new EdgeSignalManager({
7576
+ edgeConnection: this._edgeConnection
7577
+ }) : new WebsocketSignalManager(this._config?.get("runtime.services.signaling") ?? []) } = options;
7528
7578
  this._signalManager = signalManager;
7529
7579
  invariant20(!this._networkManager, "network manager already set", {
7530
7580
  F: __dxlog_file26,
7531
- L: 223,
7581
+ L: 233,
7532
7582
  S: this,
7533
7583
  A: [
7534
7584
  "!this._networkManager",
@@ -7536,19 +7586,17 @@ var ClientServicesHost = class {
7536
7586
  ]
7537
7587
  });
7538
7588
  this._networkManager = new SwarmNetworkManager({
7539
- log: connectionLog,
7589
+ enableDevtoolsLogging: connectionLog,
7540
7590
  transportFactory,
7541
- signalManager
7591
+ signalManager,
7592
+ peerInfo: this._edgeConnection ? {
7593
+ identityKey: this._edgeConnection.identityKey.toHex(),
7594
+ peerKey: this._edgeConnection.deviceKey.toHex()
7595
+ } : void 0
7542
7596
  });
7543
- const edgeEndpoint = config?.get("runtime.services.edge.url");
7544
- if (edgeEndpoint) {
7545
- this._edgeConnection = new EdgeClient(PublicKey17.random(), PublicKey17.random(), {
7546
- socketEndpoint: edgeEndpoint
7547
- });
7548
- }
7549
7597
  log23("initialized", void 0, {
7550
7598
  F: __dxlog_file26,
7551
- L: 238,
7599
+ L: 246,
7552
7600
  S: this,
7553
7601
  C: (f, a) => f(...a)
7554
7602
  });
@@ -7562,13 +7610,13 @@ var ClientServicesHost = class {
7562
7610
  id: traceId
7563
7611
  }), {
7564
7612
  F: __dxlog_file26,
7565
- L: 249,
7613
+ L: 257,
7566
7614
  S: this,
7567
7615
  C: (f, a) => f(...a)
7568
7616
  });
7569
7617
  invariant20(this._config, "config not set", {
7570
7618
  F: __dxlog_file26,
7571
- L: 251,
7619
+ L: 259,
7572
7620
  S: this,
7573
7621
  A: [
7574
7622
  "this._config",
@@ -7577,7 +7625,7 @@ var ClientServicesHost = class {
7577
7625
  });
7578
7626
  invariant20(this._storage, "storage not set", {
7579
7627
  F: __dxlog_file26,
7580
- L: 252,
7628
+ L: 260,
7581
7629
  S: this,
7582
7630
  A: [
7583
7631
  "this._storage",
@@ -7586,7 +7634,7 @@ var ClientServicesHost = class {
7586
7634
  });
7587
7635
  invariant20(this._signalManager, "signal manager not set", {
7588
7636
  F: __dxlog_file26,
7589
- L: 253,
7637
+ L: 261,
7590
7638
  S: this,
7591
7639
  A: [
7592
7640
  "this._signalManager",
@@ -7595,7 +7643,7 @@ var ClientServicesHost = class {
7595
7643
  });
7596
7644
  invariant20(this._networkManager, "network manager not set", {
7597
7645
  F: __dxlog_file26,
7598
- L: 254,
7646
+ L: 262,
7599
7647
  S: this,
7600
7648
  A: [
7601
7649
  "this._networkManager",
@@ -7607,7 +7655,7 @@ var ClientServicesHost = class {
7607
7655
  lockKey: this._resourceLock?.lockKey
7608
7656
  }, {
7609
7657
  F: __dxlog_file26,
7610
- L: 257,
7658
+ L: 265,
7611
7659
  S: this,
7612
7660
  C: (f, a) => f(...a)
7613
7661
  });
@@ -7617,7 +7665,7 @@ var ClientServicesHost = class {
7617
7665
  }
7618
7666
  await this._level.open();
7619
7667
  await this._loggingService.open();
7620
- this._serviceContext = new ServiceContext(this._storage, this._level, this._networkManager, this._signalManager, this._edgeConnection, this._runtimeParams);
7668
+ this._serviceContext = new ServiceContext(this._storage, this._level, this._networkManager, this._signalManager, this._edgeConnection, this._runtimeParams, this._config.get("runtime.client.edgeFeatures"));
7621
7669
  const dataSpaceManagerProvider = async () => {
7622
7670
  await this._serviceContext.initialized.wait();
7623
7671
  return this._serviceContext.dataSpaceManager;
@@ -7663,7 +7711,7 @@ var ClientServicesHost = class {
7663
7711
  deviceKey
7664
7712
  }, {
7665
7713
  F: __dxlog_file26,
7666
- L: 344,
7714
+ L: 353,
7667
7715
  S: this,
7668
7716
  C: (f, a) => f(...a)
7669
7717
  });
@@ -7671,7 +7719,7 @@ var ClientServicesHost = class {
7671
7719
  id: traceId
7672
7720
  }), {
7673
7721
  F: __dxlog_file26,
7674
- L: 345,
7722
+ L: 354,
7675
7723
  S: this,
7676
7724
  C: (f, a) => f(...a)
7677
7725
  });
@@ -7685,7 +7733,7 @@ var ClientServicesHost = class {
7685
7733
  deviceKey
7686
7734
  }, {
7687
7735
  F: __dxlog_file26,
7688
- L: 356,
7736
+ L: 365,
7689
7737
  S: this,
7690
7738
  C: (f, a) => f(...a)
7691
7739
  });
@@ -7703,7 +7751,7 @@ var ClientServicesHost = class {
7703
7751
  deviceKey
7704
7752
  }, {
7705
7753
  F: __dxlog_file26,
7706
- L: 365,
7754
+ L: 374,
7707
7755
  S: this,
7708
7756
  C: (f, a) => f(...a)
7709
7757
  });
@@ -7714,13 +7762,13 @@ var ClientServicesHost = class {
7714
7762
  id: traceId
7715
7763
  }), {
7716
7764
  F: __dxlog_file26,
7717
- L: 370,
7765
+ L: 379,
7718
7766
  S: this,
7719
7767
  C: (f, a) => f(...a)
7720
7768
  });
7721
7769
  log23.info("resetting...", void 0, {
7722
7770
  F: __dxlog_file26,
7723
- L: 372,
7771
+ L: 381,
7724
7772
  S: this,
7725
7773
  C: (f, a) => f(...a)
7726
7774
  });
@@ -7728,7 +7776,7 @@ var ClientServicesHost = class {
7728
7776
  await this._storage.reset();
7729
7777
  log23.info("reset", void 0, {
7730
7778
  F: __dxlog_file26,
7731
- L: 375,
7779
+ L: 384,
7732
7780
  S: this,
7733
7781
  C: (f, a) => f(...a)
7734
7782
  });
@@ -7736,7 +7784,7 @@ var ClientServicesHost = class {
7736
7784
  id: traceId
7737
7785
  }), {
7738
7786
  F: __dxlog_file26,
7739
- L: 376,
7787
+ L: 385,
7740
7788
  S: this,
7741
7789
  C: (f, a) => f(...a)
7742
7790
  });
@@ -7810,4 +7858,4 @@ export {
7810
7858
  importProfileData,
7811
7859
  ClientServicesHost
7812
7860
  };
7813
- //# sourceMappingURL=chunk-I6MMWGWX.mjs.map
7861
+ //# sourceMappingURL=chunk-RZ5JISVH.mjs.map