@dxos/client-services 0.1.58-main.b605d47 → 0.1.58-main.ba8fa9e

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 (72) hide show
  1. package/dist/lib/browser/{chunk-GRLE5OOK.mjs → chunk-XT2TMICH.mjs} +271 -193
  2. package/dist/lib/browser/chunk-XT2TMICH.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +11 -11
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +5 -5
  7. package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/index.cjs +313 -235
  9. package/dist/lib/node/index.cjs.map +4 -4
  10. package/dist/lib/node/meta.json +1 -1
  11. package/dist/lib/node/packlets/testing/index.cjs +310 -232
  12. package/dist/lib/node/packlets/testing/index.cjs.map +4 -4
  13. package/dist/types/src/packlets/devtools/devtools.d.ts.map +1 -1
  14. package/dist/types/src/packlets/identity/authenticator.d.ts.map +1 -1
  15. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +1 -1
  16. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -1
  17. package/dist/types/src/packlets/invitations/invitation-extension.d.ts.map +1 -1
  18. package/dist/types/src/packlets/invitations/invitations-handler.d.ts +3 -3
  19. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  20. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  21. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +1 -1
  22. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  23. package/dist/types/src/packlets/services/diagnostics.d.ts.map +1 -1
  24. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  25. package/dist/types/src/packlets/services/service-host.d.ts +1 -0
  26. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  27. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  28. package/dist/types/src/packlets/spaces/data-space.d.ts +1 -1
  29. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  30. package/dist/types/src/packlets/spaces/spaces-service.d.ts +2 -2
  31. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  32. package/dist/types/src/packlets/testing/invitation-utils.d.ts +5 -5
  33. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  34. package/dist/types/src/packlets/testing/test-builder.d.ts +1 -1
  35. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  36. package/dist/types/src/packlets/vault/iframe-host-runtime.d.ts.map +1 -1
  37. package/dist/types/src/packlets/vault/shell-runtime.d.ts +1 -1
  38. package/dist/types/src/packlets/vault/shell-runtime.d.ts.map +1 -1
  39. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  40. package/dist/types/src/version.d.ts +1 -1
  41. package/package.json +35 -35
  42. package/src/packlets/devices/devices-service.test.ts +1 -1
  43. package/src/packlets/devtools/devtools.ts +1 -1
  44. package/src/packlets/identity/authenticator.ts +2 -5
  45. package/src/packlets/identity/identity-manager.test.ts +1 -1
  46. package/src/packlets/identity/identity-service.test.ts +1 -1
  47. package/src/packlets/identity/identity.test.ts +1 -1
  48. package/src/packlets/invitations/device-invitation-protocol.ts +1 -1
  49. package/src/packlets/invitations/invitation-extension.ts +1 -2
  50. package/src/packlets/invitations/invitations-handler.ts +7 -8
  51. package/src/packlets/invitations/invitations-service.ts +11 -7
  52. package/src/packlets/invitations/space-invitation-protocol.ts +1 -1
  53. package/src/packlets/network/network-service.test.ts +1 -1
  54. package/src/packlets/services/diagnostics.ts +2 -2
  55. package/src/packlets/services/service-context.ts +7 -13
  56. package/src/packlets/services/service-host.test.ts +3 -3
  57. package/src/packlets/services/service-host.ts +42 -6
  58. package/src/packlets/services/service-registry.test.ts +1 -1
  59. package/src/packlets/spaces/data-space-manager.test.ts +1 -1
  60. package/src/packlets/spaces/data-space-manager.ts +1 -1
  61. package/src/packlets/spaces/data-space.ts +11 -3
  62. package/src/packlets/spaces/spaces-service.test.ts +1 -1
  63. package/src/packlets/spaces/spaces-service.ts +31 -10
  64. package/src/packlets/storage/storage.ts +10 -10
  65. package/src/packlets/testing/invitation-utils.ts +9 -9
  66. package/src/packlets/testing/test-builder.ts +3 -3
  67. package/src/packlets/vault/iframe-host-runtime.ts +1 -1
  68. package/src/packlets/vault/iframe-proxy-runtime.ts +1 -1
  69. package/src/packlets/vault/shell-runtime.ts +4 -4
  70. package/src/packlets/vault/worker-runtime.ts +9 -6
  71. package/src/version.ts +1 -1
  72. package/dist/lib/browser/chunk-GRLE5OOK.mjs.map +0 -7
@@ -416,7 +416,6 @@ var createAuthProvider = (signer) => async (nonce) => {
416
416
  return Credential.encode(credential);
417
417
  };
418
418
  var TrustedKeySetAuthVerifier = class {
419
- // prettier-ignore
420
419
  constructor(_params) {
421
420
  this._params = _params;
422
421
  this._ctx = new import_context2.Context();
@@ -431,7 +430,7 @@ var TrustedKeySetAuthVerifier = class {
431
430
  credential
432
431
  }, {
433
432
  F: __dxlog_file,
434
- L: 59,
433
+ L: 56,
435
434
  S: this,
436
435
  C: (f, a) => f(...a)
437
436
  });
@@ -441,7 +440,7 @@ var TrustedKeySetAuthVerifier = class {
441
440
  result
442
441
  }, {
443
442
  F: __dxlog_file,
444
- L: 63,
443
+ L: 60,
445
444
  S: this,
446
445
  C: (f, a) => f(...a)
447
446
  });
@@ -453,7 +452,7 @@ var TrustedKeySetAuthVerifier = class {
453
452
  credential
454
453
  }, {
455
454
  F: __dxlog_file,
456
- L: 68,
455
+ L: 65,
457
456
  S: this,
458
457
  C: (f, a) => f(...a)
459
458
  });
@@ -464,7 +463,7 @@ var TrustedKeySetAuthVerifier = class {
464
463
  key: credential.issuer
465
464
  }, {
466
465
  F: __dxlog_file,
467
- L: 73,
466
+ L: 70,
468
467
  S: this,
469
468
  C: (f, a) => f(...a)
470
469
  });
@@ -480,7 +479,7 @@ var TrustedKeySetAuthVerifier = class {
480
479
  key: credential.issuer
481
480
  }, {
482
481
  F: __dxlog_file,
483
- L: 84,
482
+ L: 81,
484
483
  S: this,
485
484
  C: (f, a) => f(...a)
486
485
  });
@@ -490,7 +489,7 @@ var TrustedKeySetAuthVerifier = class {
490
489
  key: credential.issuer
491
490
  }, {
492
491
  F: __dxlog_file,
493
- L: 87,
492
+ L: 84,
494
493
  S: this,
495
494
  C: (f, a) => f(...a)
496
495
  });
@@ -1220,7 +1219,6 @@ var import_async8 = require("@dxos/async");
1220
1219
  var import_client_protocol2 = require("@dxos/client-protocol");
1221
1220
  var import_context5 = require("@dxos/context");
1222
1221
  var import_credentials7 = require("@dxos/credentials");
1223
- var import_errors2 = require("@dxos/errors");
1224
1222
  var import_invariant6 = require("@dxos/invariant");
1225
1223
  var import_keys6 = require("@dxos/keys");
1226
1224
  var import_log5 = require("@dxos/log");
@@ -1232,7 +1230,6 @@ var import_invitations2 = require("@dxos/protocols/proto/dxos/halo/invitations")
1232
1230
  // packages/sdk/client-services/src/packlets/invitations/invitation-extension.ts
1233
1231
  var import_async7 = require("@dxos/async");
1234
1232
  var import_context4 = require("@dxos/context");
1235
- var import_errors = require("@dxos/errors");
1236
1233
  var import_invariant5 = require("@dxos/invariant");
1237
1234
  var import_keys5 = require("@dxos/keys");
1238
1235
  var import_log4 = require("@dxos/log");
@@ -1270,7 +1267,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1270
1267
  options: async (options) => {
1271
1268
  (0, import_invariant5.invariant)(!this._remoteOptions, "Remote options already set.", {
1272
1269
  F: __dxlog_file6,
1273
- L: 88,
1270
+ L: 87,
1274
1271
  S: this,
1275
1272
  A: [
1276
1273
  "!this._remoteOptions",
@@ -1287,7 +1284,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1287
1284
  id: traceId
1288
1285
  }), {
1289
1286
  F: __dxlog_file6,
1290
- L: 97,
1287
+ L: 96,
1291
1288
  S: this,
1292
1289
  C: (f, a) => f(...a)
1293
1290
  });
@@ -1297,7 +1294,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1297
1294
  invitationId
1298
1295
  }, {
1299
1296
  F: __dxlog_file6,
1300
- L: 101,
1297
+ L: 100,
1301
1298
  S: this,
1302
1299
  C: (f, a) => f(...a)
1303
1300
  });
@@ -1311,7 +1308,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1311
1308
  guestProfile: profile
1312
1309
  }, {
1313
1310
  F: __dxlog_file6,
1314
- L: 110,
1311
+ L: 109,
1315
1312
  S: this,
1316
1313
  C: (f, a) => f(...a)
1317
1314
  });
@@ -1324,7 +1321,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1324
1321
  id: traceId
1325
1322
  }), {
1326
1323
  F: __dxlog_file6,
1327
- L: 117,
1324
+ L: 116,
1328
1325
  S: this,
1329
1326
  C: (f, a) => f(...a)
1330
1327
  });
@@ -1339,7 +1336,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1339
1336
  id: traceId
1340
1337
  }), {
1341
1338
  F: __dxlog_file6,
1342
- L: 126,
1339
+ L: 125,
1343
1340
  S: this,
1344
1341
  C: (f, a) => f(...a)
1345
1342
  });
@@ -1347,14 +1344,14 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1347
1344
  authCode: code
1348
1345
  }, {
1349
1346
  F: __dxlog_file6,
1350
- L: 127,
1347
+ L: 126,
1351
1348
  S: this,
1352
1349
  C: (f, a) => f(...a)
1353
1350
  });
1354
1351
  let status = import_invitations.AuthenticationResponse.Status.OK;
1355
1352
  (0, import_invariant5.invariant)(this.invitation, "Invitation is not set.", {
1356
1353
  F: __dxlog_file6,
1357
- L: 130,
1354
+ L: 129,
1358
1355
  S: this,
1359
1356
  A: [
1360
1357
  "this.invitation",
@@ -1365,7 +1362,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1365
1362
  case import_services2.Invitation.AuthMethod.NONE: {
1366
1363
  (0, import_log4.log)("authentication not required", void 0, {
1367
1364
  F: __dxlog_file6,
1368
- L: 133,
1365
+ L: 132,
1369
1366
  S: this,
1370
1367
  C: (f, a) => f(...a)
1371
1368
  });
@@ -1390,7 +1387,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1390
1387
  authMethod: this.invitation.authMethod
1391
1388
  }, {
1392
1389
  F: __dxlog_file6,
1393
- L: 151,
1390
+ L: 150,
1394
1391
  S: this,
1395
1392
  C: (f, a) => f(...a)
1396
1393
  });
@@ -1405,7 +1402,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1405
1402
  }
1406
1403
  }), {
1407
1404
  F: __dxlog_file6,
1408
- L: 157,
1405
+ L: 156,
1409
1406
  S: this,
1410
1407
  C: (f, a) => f(...a)
1411
1408
  });
@@ -1419,14 +1416,14 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1419
1416
  id: traceId
1420
1417
  }), {
1421
1418
  F: __dxlog_file6,
1422
- L: 163,
1419
+ L: 162,
1423
1420
  S: this,
1424
1421
  C: (f, a) => f(...a)
1425
1422
  });
1426
1423
  try {
1427
1424
  (0, import_invariant5.invariant)(this.invitation, "Invitation is not set.", {
1428
1425
  F: __dxlog_file6,
1429
- L: 166,
1426
+ L: 165,
1430
1427
  S: this,
1431
1428
  A: [
1432
1429
  "this.invitation",
@@ -1441,7 +1438,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1441
1438
  id: traceId
1442
1439
  }), {
1443
1440
  F: __dxlog_file6,
1444
- L: 174,
1441
+ L: 173,
1445
1442
  S: this,
1446
1443
  C: (f, a) => f(...a)
1447
1444
  });
@@ -1464,7 +1461,7 @@ var InvitationHostExtension = class extends import_teleport.RpcExtension {
1464
1461
  timeout: OPTIONS_TIMEOUT
1465
1462
  }));
1466
1463
  if (this._remoteOptions?.role !== import_invitations.Options.Role.GUEST) {
1467
- throw new import_errors.InvalidInvitationExtensionRoleError(void 0, {
1464
+ throw new import_protocols3.InvalidInvitationExtensionRoleError(void 0, {
1468
1465
  expected: import_invitations.Options.Role.GUEST,
1469
1466
  remoteOptions: this._remoteOptions
1470
1467
  });
@@ -1498,7 +1495,7 @@ var InvitationGuestExtension = class extends import_teleport.RpcExtension {
1498
1495
  options: async (options) => {
1499
1496
  (0, import_invariant5.invariant)(!this._remoteOptions, "Remote options already set.", {
1500
1497
  F: __dxlog_file6,
1501
- L: 241,
1498
+ L: 240,
1502
1499
  S: this,
1503
1500
  A: [
1504
1501
  "!this._remoteOptions",
@@ -1525,7 +1522,7 @@ var InvitationGuestExtension = class extends import_teleport.RpcExtension {
1525
1522
  try {
1526
1523
  (0, import_log4.log)("begin options", void 0, {
1527
1524
  F: __dxlog_file6,
1528
- L: 262,
1525
+ L: 261,
1529
1526
  S: this,
1530
1527
  C: (f, a) => f(...a)
1531
1528
  });
@@ -1537,12 +1534,12 @@ var InvitationGuestExtension = class extends import_teleport.RpcExtension {
1537
1534
  }));
1538
1535
  (0, import_log4.log)("end options", void 0, {
1539
1536
  F: __dxlog_file6,
1540
- L: 265,
1537
+ L: 264,
1541
1538
  S: this,
1542
1539
  C: (f, a) => f(...a)
1543
1540
  });
1544
1541
  if (this._remoteOptions?.role !== import_invitations.Options.Role.HOST) {
1545
- throw new import_errors.InvalidInvitationExtensionRoleError(void 0, {
1542
+ throw new import_protocols3.InvalidInvitationExtensionRoleError(void 0, {
1546
1543
  expected: import_invitations.Options.Role.HOST,
1547
1544
  remoteOptions: this._remoteOptions
1548
1545
  });
@@ -1551,7 +1548,7 @@ var InvitationGuestExtension = class extends import_teleport.RpcExtension {
1551
1548
  } catch (err) {
1552
1549
  (0, import_log4.log)("openError", err, {
1553
1550
  F: __dxlog_file6,
1554
- L: 275,
1551
+ L: 274,
1555
1552
  S: this,
1556
1553
  C: (f, a) => f(...a)
1557
1554
  });
@@ -1561,7 +1558,7 @@ var InvitationGuestExtension = class extends import_teleport.RpcExtension {
1561
1558
  async onClose() {
1562
1559
  (0, import_log4.log)("onClose", void 0, {
1563
1560
  F: __dxlog_file6,
1564
- L: 281,
1561
+ L: 280,
1565
1562
  S: this,
1566
1563
  C: (f, a) => f(...a)
1567
1564
  });
@@ -1584,7 +1581,7 @@ var InvitationsHandler = class {
1584
1581
  const authCode = options?.authCode ?? (authMethod === import_services3.Invitation.AuthMethod.SHARED_SECRET ? (0, import_credentials7.generatePasscode)(import_client_protocol2.AUTHENTICATION_CODE_LENGTH) : void 0);
1585
1582
  (0, import_invariant6.invariant)(protocol, void 0, {
1586
1583
  F: __dxlog_file7,
1587
- L: 76,
1584
+ L: 75,
1588
1585
  S: this,
1589
1586
  A: [
1590
1587
  "protocol",
@@ -1613,7 +1610,7 @@ var InvitationsHandler = class {
1613
1610
  ...protocol.toJSON()
1614
1611
  }, {
1615
1612
  F: __dxlog_file7,
1616
- L: 98,
1613
+ L: 97,
1617
1614
  S: this,
1618
1615
  C: (f, a) => f(...a)
1619
1616
  });
@@ -1638,7 +1635,7 @@ var InvitationsHandler = class {
1638
1635
  const deviceKey = admissionRequest.device?.deviceKey ?? admissionRequest.space?.deviceKey;
1639
1636
  (0, import_invariant6.invariant)(deviceKey, void 0, {
1640
1637
  F: __dxlog_file7,
1641
- L: 119,
1638
+ L: 118,
1642
1639
  S: this,
1643
1640
  A: [
1644
1641
  "deviceKey",
@@ -1661,7 +1658,7 @@ var InvitationsHandler = class {
1661
1658
  id: traceId
1662
1659
  }), {
1663
1660
  F: __dxlog_file7,
1664
- L: 137,
1661
+ L: 136,
1665
1662
  S: this,
1666
1663
  C: (f, a) => f(...a)
1667
1664
  });
@@ -1669,7 +1666,7 @@ var InvitationsHandler = class {
1669
1666
  ...protocol.toJSON()
1670
1667
  }, {
1671
1668
  F: __dxlog_file7,
1672
- L: 138,
1669
+ L: 137,
1673
1670
  S: this,
1674
1671
  C: (f, a) => f(...a)
1675
1672
  });
@@ -1685,7 +1682,7 @@ var InvitationsHandler = class {
1685
1682
  ...protocol.toJSON()
1686
1683
  }, {
1687
1684
  F: __dxlog_file7,
1688
- L: 141,
1685
+ L: 140,
1689
1686
  S: this,
1690
1687
  C: (f, a) => f(...a)
1691
1688
  });
@@ -1697,7 +1694,7 @@ var InvitationsHandler = class {
1697
1694
  id: traceId
1698
1695
  }), {
1699
1696
  F: __dxlog_file7,
1700
- L: 143,
1697
+ L: 142,
1701
1698
  S: this,
1702
1699
  C: (f, a) => f(...a)
1703
1700
  });
@@ -1707,7 +1704,7 @@ var InvitationsHandler = class {
1707
1704
  ...protocol.toJSON()
1708
1705
  }, {
1709
1706
  F: __dxlog_file7,
1710
- L: 146,
1707
+ L: 145,
1711
1708
  S: this,
1712
1709
  C: (f, a) => f(...a)
1713
1710
  });
@@ -1718,7 +1715,7 @@ var InvitationsHandler = class {
1718
1715
  } else {
1719
1716
  import_log5.log.error("failed", err, {
1720
1717
  F: __dxlog_file7,
1721
- L: 149,
1718
+ L: 148,
1722
1719
  S: this,
1723
1720
  C: (f, a) => f(...a)
1724
1721
  });
@@ -1729,7 +1726,7 @@ var InvitationsHandler = class {
1729
1726
  error: err
1730
1727
  }), {
1731
1728
  F: __dxlog_file7,
1732
- L: 152,
1729
+ L: 151,
1733
1730
  S: this,
1734
1731
  C: (f, a) => f(...a)
1735
1732
  });
@@ -1742,7 +1739,7 @@ var InvitationsHandler = class {
1742
1739
  });
1743
1740
  },
1744
1741
  onError: (err) => {
1745
- if (err instanceof import_errors2.InvalidInvitationExtensionRoleError) {
1742
+ if (err instanceof import_protocols4.InvalidInvitationExtensionRoleError) {
1746
1743
  return;
1747
1744
  }
1748
1745
  if (err instanceof import_async8.TimeoutError) {
@@ -1750,7 +1747,7 @@ var InvitationsHandler = class {
1750
1747
  ...protocol.toJSON()
1751
1748
  }, {
1752
1749
  F: __dxlog_file7,
1753
- L: 167,
1750
+ L: 166,
1754
1751
  S: this,
1755
1752
  C: (f, a) => f(...a)
1756
1753
  });
@@ -1761,7 +1758,7 @@ var InvitationsHandler = class {
1761
1758
  } else {
1762
1759
  import_log5.log.error("failed", err, {
1763
1760
  F: __dxlog_file7,
1764
- L: 170,
1761
+ L: 169,
1765
1762
  S: this,
1766
1763
  C: (f, a) => f(...a)
1767
1764
  });
@@ -1789,7 +1786,7 @@ var InvitationsHandler = class {
1789
1786
  state: import_services3.Invitation.State.CONNECTING
1790
1787
  });
1791
1788
  });
1792
- const observable = new import_client_protocol2.CancellableInvitationObservable({
1789
+ const observable = new import_client_protocol2.CancellableInvitation({
1793
1790
  initialInvitation: invitation,
1794
1791
  subscriber: stream.observable,
1795
1792
  onCancel: async () => {
@@ -1806,7 +1803,7 @@ var InvitationsHandler = class {
1806
1803
  const { timeout = import_client_protocol2.INVITATION_TIMEOUT } = invitation;
1807
1804
  (0, import_invariant6.invariant)(protocol, void 0, {
1808
1805
  F: __dxlog_file7,
1809
- L: 211,
1806
+ L: 210,
1810
1807
  S: this,
1811
1808
  A: [
1812
1809
  "protocol",
@@ -1820,7 +1817,7 @@ var InvitationsHandler = class {
1820
1817
  const setState = (newData) => {
1821
1818
  (0, import_invariant6.invariant)(newData.state !== void 0, void 0, {
1822
1819
  F: __dxlog_file7,
1823
- L: 222,
1820
+ L: 221,
1824
1821
  S: this,
1825
1822
  A: [
1826
1823
  "newData.state !== undefined",
@@ -1840,7 +1837,7 @@ var InvitationsHandler = class {
1840
1837
  ...protocol.toJSON()
1841
1838
  }, {
1842
1839
  F: __dxlog_file7,
1843
- L: 230,
1840
+ L: 229,
1844
1841
  S: this,
1845
1842
  C: (f, a) => f(...a)
1846
1843
  });
@@ -1850,7 +1847,7 @@ var InvitationsHandler = class {
1850
1847
  } else {
1851
1848
  import_log5.log.warn("auth failed", err, {
1852
1849
  F: __dxlog_file7,
1853
- L: 233,
1850
+ L: 232,
1854
1851
  S: this,
1855
1852
  C: (f, a) => f(...a)
1856
1853
  });
@@ -1864,7 +1861,7 @@ var InvitationsHandler = class {
1864
1861
  ...protocol.toJSON()
1865
1862
  }, {
1866
1863
  F: __dxlog_file7,
1867
- L: 241,
1864
+ L: 240,
1868
1865
  S: this,
1869
1866
  C: (f, a) => f(...a)
1870
1867
  });
@@ -1879,7 +1876,7 @@ var InvitationsHandler = class {
1879
1876
  currentState
1880
1877
  }, {
1881
1878
  F: __dxlog_file7,
1882
- L: 251,
1879
+ L: 250,
1883
1880
  S: this,
1884
1881
  C: (f, a) => f(...a)
1885
1882
  });
@@ -1894,7 +1891,7 @@ var InvitationsHandler = class {
1894
1891
  id: traceId
1895
1892
  }), {
1896
1893
  F: __dxlog_file7,
1897
- L: 260,
1894
+ L: 259,
1898
1895
  S: this,
1899
1896
  C: (f, a) => f(...a)
1900
1897
  });
@@ -1906,7 +1903,7 @@ var InvitationsHandler = class {
1906
1903
  ...protocol.toJSON()
1907
1904
  }, {
1908
1905
  F: __dxlog_file7,
1909
- L: 268,
1906
+ L: 267,
1910
1907
  S: this,
1911
1908
  C: (f, a) => f(...a)
1912
1909
  });
@@ -1917,7 +1914,7 @@ var InvitationsHandler = class {
1917
1914
  ...protocol.toJSON()
1918
1915
  }, {
1919
1916
  F: __dxlog_file7,
1920
- L: 272,
1917
+ L: 271,
1921
1918
  S: this,
1922
1919
  C: (f, a) => f(...a)
1923
1920
  });
@@ -1927,7 +1924,7 @@ var InvitationsHandler = class {
1927
1924
  response: introductionResponse
1928
1925
  }, {
1929
1926
  F: __dxlog_file7,
1930
- L: 276,
1927
+ L: 275,
1931
1928
  S: this,
1932
1929
  C: (f, a) => f(...a)
1933
1930
  });
@@ -1939,7 +1936,7 @@ var InvitationsHandler = class {
1939
1936
  for (let attempt = 1; attempt <= MAX_OTP_ATTEMPTS; attempt++) {
1940
1937
  (0, import_log5.log)("guest waiting for authentication code...", void 0, {
1941
1938
  F: __dxlog_file7,
1942
- L: 285,
1939
+ L: 284,
1943
1940
  S: this,
1944
1941
  C: (f, a) => f(...a)
1945
1942
  });
@@ -1951,7 +1948,7 @@ var InvitationsHandler = class {
1951
1948
  });
1952
1949
  (0, import_log5.log)("sending authentication request", void 0, {
1953
1950
  F: __dxlog_file7,
1954
- L: 289,
1951
+ L: 288,
1955
1952
  S: this,
1956
1953
  C: (f, a) => f(...a)
1957
1954
  });
@@ -1972,7 +1969,7 @@ var InvitationsHandler = class {
1972
1969
  attempt
1973
1970
  }, {
1974
1971
  F: __dxlog_file7,
1975
- L: 300,
1972
+ L: 299,
1976
1973
  S: this,
1977
1974
  C: (f, a) => f(...a)
1978
1975
  });
@@ -1989,7 +1986,7 @@ var InvitationsHandler = class {
1989
1986
  ...protocol.toJSON()
1990
1987
  }, {
1991
1988
  F: __dxlog_file7,
1992
- L: 311,
1989
+ L: 310,
1993
1990
  S: this,
1994
1991
  C: (f, a) => f(...a)
1995
1992
  });
@@ -2001,7 +1998,7 @@ var InvitationsHandler = class {
2001
1998
  ...protocol.toJSON()
2002
1999
  }, {
2003
2000
  F: __dxlog_file7,
2004
- L: 322,
2001
+ L: 321,
2005
2002
  S: this,
2006
2003
  C: (f, a) => f(...a)
2007
2004
  });
@@ -2013,7 +2010,7 @@ var InvitationsHandler = class {
2013
2010
  id: traceId
2014
2011
  }), {
2015
2012
  F: __dxlog_file7,
2016
- L: 324,
2013
+ L: 323,
2017
2014
  S: this,
2018
2015
  C: (f, a) => f(...a)
2019
2016
  });
@@ -2023,7 +2020,7 @@ var InvitationsHandler = class {
2023
2020
  ...protocol.toJSON()
2024
2021
  }, {
2025
2022
  F: __dxlog_file7,
2026
- L: 327,
2023
+ L: 326,
2027
2024
  S: this,
2028
2025
  C: (f, a) => f(...a)
2029
2026
  });
@@ -2033,7 +2030,7 @@ var InvitationsHandler = class {
2033
2030
  } else {
2034
2031
  (0, import_log5.log)("auth failed", err, {
2035
2032
  F: __dxlog_file7,
2036
- L: 330,
2033
+ L: 329,
2037
2034
  S: this,
2038
2035
  C: (f, a) => f(...a)
2039
2036
  });
@@ -2044,7 +2041,7 @@ var InvitationsHandler = class {
2044
2041
  error: err
2045
2042
  }), {
2046
2043
  F: __dxlog_file7,
2047
- L: 333,
2044
+ L: 332,
2048
2045
  S: this,
2049
2046
  C: (f, a) => f(...a)
2050
2047
  });
@@ -2054,7 +2051,7 @@ var InvitationsHandler = class {
2054
2051
  });
2055
2052
  },
2056
2053
  onError: (err) => {
2057
- if (err instanceof import_errors2.InvalidInvitationExtensionRoleError) {
2054
+ if (err instanceof import_protocols4.InvalidInvitationExtensionRoleError) {
2058
2055
  return;
2059
2056
  }
2060
2057
  if (err instanceof import_async8.TimeoutError) {
@@ -2062,7 +2059,7 @@ var InvitationsHandler = class {
2062
2059
  ...protocol.toJSON()
2063
2060
  }, {
2064
2061
  F: __dxlog_file7,
2065
- L: 344,
2062
+ L: 343,
2066
2063
  S: this,
2067
2064
  C: (f, a) => f(...a)
2068
2065
  });
@@ -2072,7 +2069,7 @@ var InvitationsHandler = class {
2072
2069
  } else {
2073
2070
  (0, import_log5.log)("auth failed", err, {
2074
2071
  F: __dxlog_file7,
2075
- L: 347,
2072
+ L: 346,
2076
2073
  S: this,
2077
2074
  C: (f, a) => f(...a)
2078
2075
  });
@@ -2085,7 +2082,7 @@ var InvitationsHandler = class {
2085
2082
  (0, import_async8.scheduleTask)(ctx, async () => {
2086
2083
  (0, import_invariant6.invariant)(invitation.swarmKey, void 0, {
2087
2084
  F: __dxlog_file7,
2088
- L: 357,
2085
+ L: 356,
2089
2086
  S: this,
2090
2087
  A: [
2091
2088
  "invitation.swarmKey",
@@ -2107,7 +2104,7 @@ var InvitationsHandler = class {
2107
2104
  state: import_services3.Invitation.State.CONNECTING
2108
2105
  });
2109
2106
  });
2110
- const observable = new import_client_protocol2.AuthenticatingInvitationObservable({
2107
+ const observable = new import_client_protocol2.AuthenticatingInvitation({
2111
2108
  initialInvitation: invitation,
2112
2109
  subscriber: stream.observable,
2113
2110
  onCancel: async () => {
@@ -2165,7 +2162,9 @@ var InvitationsServiceImpl = class {
2165
2162
  }, () => {
2166
2163
  close();
2167
2164
  this._createInvitations.delete(invitation.get().invitationId);
2168
- this._removedCreated.emit(invitation.get());
2165
+ if (invitation.get().type !== import_services4.Invitation.Type.MULTIUSE) {
2166
+ this._removedCreated.emit(invitation.get());
2167
+ }
2169
2168
  });
2170
2169
  });
2171
2170
  }
@@ -2188,20 +2187,22 @@ var InvitationsServiceImpl = class {
2188
2187
  }, () => {
2189
2188
  close();
2190
2189
  this._acceptInvitations.delete(invitation.get().invitationId);
2191
- this._removedAccepted.emit(invitation.get());
2190
+ if (invitation.get().type !== import_services4.Invitation.Type.MULTIUSE) {
2191
+ this._removedAccepted.emit(invitation.get());
2192
+ }
2192
2193
  });
2193
2194
  });
2194
2195
  }
2195
2196
  async authenticate({ invitationId, authCode }) {
2196
2197
  (0, import_log6.log)("authenticating...", void 0, {
2197
2198
  F: __dxlog_file8,
2198
- L: 104,
2199
+ L: 108,
2199
2200
  S: this,
2200
2201
  C: (f, a) => f(...a)
2201
2202
  });
2202
2203
  (0, import_invariant7.invariant)(invitationId, void 0, {
2203
2204
  F: __dxlog_file8,
2204
- L: 105,
2205
+ L: 109,
2205
2206
  S: this,
2206
2207
  A: [
2207
2208
  "invitationId",
@@ -2214,7 +2215,7 @@ var InvitationsServiceImpl = class {
2214
2215
  invitationId
2215
2216
  }, {
2216
2217
  F: __dxlog_file8,
2217
- L: 108,
2218
+ L: 112,
2218
2219
  S: this,
2219
2220
  C: (f, a) => f(...a)
2220
2221
  });
@@ -2225,13 +2226,13 @@ var InvitationsServiceImpl = class {
2225
2226
  async cancelInvitation({ invitationId }) {
2226
2227
  (0, import_log6.log)("deleting...", void 0, {
2227
2228
  F: __dxlog_file8,
2228
- L: 115,
2229
+ L: 119,
2229
2230
  S: this,
2230
2231
  C: (f, a) => f(...a)
2231
2232
  });
2232
2233
  (0, import_invariant7.invariant)(invitationId, void 0, {
2233
2234
  F: __dxlog_file8,
2234
- L: 116,
2235
+ L: 120,
2235
2236
  S: this,
2236
2237
  A: [
2237
2238
  "invitationId",
@@ -2253,7 +2254,7 @@ var InvitationsServiceImpl = class {
2253
2254
  invitationId
2254
2255
  }, {
2255
2256
  F: __dxlog_file8,
2256
- L: 128,
2257
+ L: 132,
2257
2258
  S: this,
2258
2259
  C: (f, a) => f(...a)
2259
2260
  });
@@ -2527,9 +2528,6 @@ var import_log8 = require("@dxos/log");
2527
2528
  var import_protocols5 = require("@dxos/protocols");
2528
2529
  var import_services6 = require("@dxos/protocols/proto/dxos/client/services");
2529
2530
 
2530
- // packages/sdk/client-services/src/version.ts
2531
- var DXOS_VERSION = "0.1.58-main.b605d47";
2532
-
2533
2531
  // packages/sdk/client-services/src/packlets/services/platform.ts
2534
2532
  var getPlatform = () => {
2535
2533
  if (process.browser) {
@@ -2558,6 +2556,9 @@ var getPlatform = () => {
2558
2556
  }
2559
2557
  };
2560
2558
 
2559
+ // packages/sdk/client-services/src/version.ts
2560
+ var DXOS_VERSION = "0.1.58-main.ba8fa9e";
2561
+
2561
2562
  // packages/sdk/client-services/src/packlets/services/diagnostics.ts
2562
2563
  var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/diagnostics.ts";
2563
2564
  var DEFAULT_TIMEOUT = 1e3;
@@ -2681,13 +2682,13 @@ var import_async14 = require("@dxos/async");
2681
2682
  var import_context9 = require("@dxos/context");
2682
2683
  var import_credentials14 = require("@dxos/credentials");
2683
2684
  var import_debug7 = require("@dxos/debug");
2684
- var import_echo_pipeline3 = require("@dxos/echo-pipeline");
2685
+ var import_echo_pipeline2 = require("@dxos/echo-pipeline");
2685
2686
  var import_feed_store4 = require("@dxos/feed-store");
2686
- var import_invariant12 = require("@dxos/invariant");
2687
+ var import_invariant13 = require("@dxos/invariant");
2687
2688
  var import_keyring = require("@dxos/keyring");
2688
2689
  var import_keys10 = require("@dxos/keys");
2689
2690
  var import_log13 = require("@dxos/log");
2690
- var import_protocols9 = require("@dxos/protocols");
2691
+ var import_protocols10 = require("@dxos/protocols");
2691
2692
  var import_services10 = require("@dxos/protocols/proto/dxos/client/services");
2692
2693
  var import_teleport_extension_object_sync = require("@dxos/teleport-extension-object-sync");
2693
2694
  var import_tracing4 = require("@dxos/tracing");
@@ -2700,7 +2701,7 @@ var import_credentials13 = require("@dxos/credentials");
2700
2701
  var import_invariant11 = require("@dxos/invariant");
2701
2702
  var import_keys9 = require("@dxos/keys");
2702
2703
  var import_log11 = require("@dxos/log");
2703
- var import_protocols7 = require("@dxos/protocols");
2704
+ var import_protocols8 = require("@dxos/protocols");
2704
2705
  var import_services8 = require("@dxos/protocols/proto/dxos/client/services");
2705
2706
  var import_teleport_extension_gossip = require("@dxos/teleport-extension-gossip");
2706
2707
  var import_util5 = require("@dxos/util");
@@ -2711,9 +2712,9 @@ var import_client_protocol3 = require("@dxos/client-protocol");
2711
2712
  var import_context7 = require("@dxos/context");
2712
2713
  var import_debug4 = require("@dxos/debug");
2713
2714
  var import_echo_pipeline = require("@dxos/echo-pipeline");
2714
- var import_errors3 = require("@dxos/errors");
2715
2715
  var import_keys8 = require("@dxos/keys");
2716
2716
  var import_log10 = require("@dxos/log");
2717
+ var import_protocols7 = require("@dxos/protocols");
2717
2718
  var import_services7 = require("@dxos/protocols/proto/dxos/client/services");
2718
2719
  var import_credentials10 = require("@dxos/protocols/proto/dxos/halo/credentials");
2719
2720
  var import_timeframe2 = require("@dxos/timeframe");
@@ -3022,7 +3023,7 @@ var DataSpace = class DataSpace2 {
3022
3023
  this._signingContext = params.signingContext;
3023
3024
  this._callbacks = params.callbacks ?? {};
3024
3025
  this.authVerifier = new TrustedKeySetAuthVerifier({
3025
- trustedKeysProvider: () => new import_util4.ComplexSet(import_keys8.PublicKey.hash, Array.from(this._inner.spaceState.members.keys())),
3026
+ trustedKeysProvider: () => new import_util4.ComplexSet(import_keys8.PublicKey.hash, Array.from(this._inner.spaceState.members.values()).filter((member) => !member.removed).map((member) => member.key)),
3026
3027
  update: this._inner.stateUpdate,
3027
3028
  authTimeout: import_client_protocol3.AUTH_TIMEOUT
3028
3029
  });
@@ -3032,7 +3033,7 @@ var DataSpace = class DataSpace2 {
3032
3033
  state: import_services7.SpaceState[this._state]
3033
3034
  }, {
3034
3035
  F: __dxlog_file12,
3035
- L: 112,
3036
+ L: 118,
3036
3037
  S: this,
3037
3038
  C: (f, a) => f(...a)
3038
3039
  });
@@ -3066,6 +3067,7 @@ var DataSpace = class DataSpace2 {
3066
3067
  await this._open();
3067
3068
  }
3068
3069
  async _open() {
3070
+ await this._gossip.open();
3069
3071
  await this._notarizationPlugin.open();
3070
3072
  await this._inner.spaceState.addCredentialProcessor(this._notarizationPlugin);
3071
3073
  await this._inner.open(new import_context7.Context());
@@ -3074,7 +3076,7 @@ var DataSpace = class DataSpace2 {
3074
3076
  state: import_services7.SpaceState[this._state]
3075
3077
  }, {
3076
3078
  F: __dxlog_file12,
3077
- L: 158,
3079
+ L: 165,
3078
3080
  S: this,
3079
3081
  C: (f, a) => f(...a)
3080
3082
  });
@@ -3092,7 +3094,7 @@ var DataSpace = class DataSpace2 {
3092
3094
  state: import_services7.SpaceState[this._state]
3093
3095
  }, {
3094
3096
  F: __dxlog_file12,
3095
- L: 172,
3097
+ L: 179,
3096
3098
  S: this,
3097
3099
  C: (f, a) => f(...a)
3098
3100
  });
@@ -3103,6 +3105,7 @@ var DataSpace = class DataSpace2 {
3103
3105
  await this._inner.spaceState.removeCredentialProcessor(this._notarizationPlugin);
3104
3106
  await this._notarizationPlugin.close();
3105
3107
  await this._presence.destroy();
3108
+ await this._gossip.close();
3106
3109
  }
3107
3110
  async postMessage(channel, message) {
3108
3111
  return this._gossip.postMessage(channel, message);
@@ -3119,10 +3122,10 @@ var DataSpace = class DataSpace2 {
3119
3122
  this.metrics.pipelineInitBegin = /* @__PURE__ */ new Date();
3120
3123
  await this.initializeDataPipeline();
3121
3124
  } catch (err) {
3122
- if (err instanceof import_errors3.CancelledError) {
3125
+ if (err instanceof import_protocols7.CancelledError) {
3123
3126
  (0, import_log10.log)("data pipeline initialization cancelled", err, {
3124
3127
  F: __dxlog_file12,
3125
- L: 203,
3128
+ L: 211,
3126
3129
  S: this,
3127
3130
  C: (f, a) => f(...a)
3128
3131
  });
@@ -3130,7 +3133,7 @@ var DataSpace = class DataSpace2 {
3130
3133
  }
3131
3134
  import_log10.log.error("Error initializing data pipeline", err, {
3132
3135
  F: __dxlog_file12,
3133
- L: 207,
3136
+ L: 215,
3134
3137
  S: this,
3135
3138
  C: (f, a) => f(...a)
3136
3139
  });
@@ -3139,7 +3142,7 @@ var DataSpace = class DataSpace2 {
3139
3142
  state: import_services7.SpaceState[this._state]
3140
3143
  }, {
3141
3144
  F: __dxlog_file12,
3142
- L: 209,
3145
+ L: 217,
3143
3146
  S: this,
3144
3147
  C: (f, a) => f(...a)
3145
3148
  });
@@ -3152,14 +3155,14 @@ var DataSpace = class DataSpace2 {
3152
3155
  }
3153
3156
  async initializeDataPipeline() {
3154
3157
  if (this._state !== import_services7.SpaceState.CONTROL_ONLY) {
3155
- throw new import_errors3.SystemError("Invalid operation");
3158
+ throw new import_protocols7.SystemError("Invalid operation");
3156
3159
  }
3157
3160
  this._state = import_services7.SpaceState.INITIALIZING;
3158
3161
  (0, import_log10.log)("new state", {
3159
3162
  state: import_services7.SpaceState[this._state]
3160
3163
  }, {
3161
3164
  F: __dxlog_file12,
3162
- L: 225,
3165
+ L: 233,
3163
3166
  S: this,
3164
3167
  C: (f, a) => f(...a)
3165
3168
  });
@@ -3170,7 +3173,7 @@ var DataSpace = class DataSpace2 {
3170
3173
  await (0, import_context7.cancelWithContext)(this._ctx, this._inner.dataPipeline.ensureEpochInitialized());
3171
3174
  (0, import_log10.log)("waiting for data pipeline to reach target timeframe", void 0, {
3172
3175
  F: __dxlog_file12,
3173
- L: 239,
3176
+ L: 247,
3174
3177
  S: this,
3175
3178
  C: (f, a) => f(...a)
3176
3179
  });
@@ -3181,7 +3184,7 @@ var DataSpace = class DataSpace2 {
3181
3184
  this.metrics.dataPipelineReady = /* @__PURE__ */ new Date();
3182
3185
  (0, import_log10.log)("data pipeline ready", void 0, {
3183
3186
  F: __dxlog_file12,
3184
- L: 248,
3187
+ L: 256,
3185
3188
  S: this,
3186
3189
  C: (f, a) => f(...a)
3187
3190
  });
@@ -3191,7 +3194,7 @@ var DataSpace = class DataSpace2 {
3191
3194
  state: import_services7.SpaceState[this._state]
3192
3195
  }, {
3193
3196
  F: __dxlog_file12,
3194
- L: 252,
3197
+ L: 260,
3195
3198
  S: this,
3196
3199
  C: (f, a) => f(...a)
3197
3200
  });
@@ -3207,7 +3210,7 @@ var DataSpace = class DataSpace2 {
3207
3210
  await this._createWritableFeeds();
3208
3211
  (0, import_log10.log)("writable feeds created", void 0, {
3209
3212
  F: __dxlog_file12,
3210
- L: 268,
3213
+ L: 276,
3211
3214
  S: this,
3212
3215
  C: (f, a) => f(...a)
3213
3216
  });
@@ -3312,7 +3315,7 @@ var DataSpace = class DataSpace2 {
3312
3315
  state: import_services7.SpaceState[this._state]
3313
3316
  }, {
3314
3317
  F: __dxlog_file12,
3315
- L: 384,
3318
+ L: 392,
3316
3319
  S: this,
3317
3320
  C: (f, a) => f(...a)
3318
3321
  });
@@ -3454,7 +3457,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3454
3457
  S: this,
3455
3458
  C: (f, a) => f(...a)
3456
3459
  });
3457
- import_log11.log.trace("dxos.echo.data-space-manager.open", import_protocols7.trace.begin({
3460
+ import_log11.log.trace("dxos.echo.data-space-manager.open", import_protocols8.trace.begin({
3458
3461
  id: this._instanceId
3459
3462
  }), {
3460
3463
  F: __dxlog_file13,
@@ -3500,7 +3503,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3500
3503
  space.initializeDataPipelineAsync();
3501
3504
  }
3502
3505
  }
3503
- import_log11.log.trace("dxos.echo.data-space-manager.open", import_protocols7.trace.end({
3506
+ import_log11.log.trace("dxos.echo.data-space-manager.open", import_protocols8.trace.end({
3504
3507
  id: this._instanceId
3505
3508
  }), {
3506
3509
  F: __dxlog_file13,
@@ -3754,10 +3757,9 @@ DataSpaceManager = _ts_decorate4([
3754
3757
  var import_async13 = require("@dxos/async");
3755
3758
  var import_codec_protobuf11 = require("@dxos/codec-protobuf");
3756
3759
  var import_debug6 = require("@dxos/debug");
3757
- var import_echo_pipeline2 = require("@dxos/echo-pipeline");
3758
- var import_errors4 = require("@dxos/errors");
3760
+ var import_invariant12 = require("@dxos/invariant");
3759
3761
  var import_log12 = require("@dxos/log");
3760
- var import_protocols8 = require("@dxos/protocols");
3762
+ var import_protocols9 = require("@dxos/protocols");
3761
3763
  var import_services9 = require("@dxos/protocols/proto/dxos/client/services");
3762
3764
  var __dxlog_file14 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/spaces-service.ts";
3763
3765
  var SpacesServiceImpl = class {
@@ -3777,7 +3779,7 @@ var SpacesServiceImpl = class {
3777
3779
  }
3778
3780
  async updateSpace({ spaceKey, state }) {
3779
3781
  const dataSpaceManager = await this._getDataSpaceManager();
3780
- const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3782
+ const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3781
3783
  if (state) {
3782
3784
  switch (state) {
3783
3785
  case import_services9.SpaceState.ACTIVE:
@@ -3787,7 +3789,7 @@ var SpacesServiceImpl = class {
3787
3789
  await space.deactivate();
3788
3790
  break;
3789
3791
  default:
3790
- throw new import_errors4.ApiError("Invalid space state");
3792
+ throw new import_protocols9.ApiError("Invalid space state");
3791
3793
  }
3792
3794
  }
3793
3795
  }
@@ -3820,7 +3822,7 @@ var SpacesServiceImpl = class {
3820
3822
  subscriptions.add(space.stateUpdate.on(ctx, () => scheduler.forceTrigger()));
3821
3823
  subscriptions.add(space.presence.updated.on(ctx, () => scheduler.trigger()));
3822
3824
  subscriptions.add(space.dataPipeline.onNewEpoch.on(ctx, () => scheduler.trigger()));
3823
- space.inner.controlPipeline.state.timeframeUpdate.on(ctx, () => scheduler.trigger());
3825
+ subscriptions.add(space.inner.controlPipeline.state.timeframeUpdate.on(ctx, () => scheduler.trigger()));
3824
3826
  if (space.dataPipeline.pipelineState) {
3825
3827
  subscriptions.add(space.dataPipeline.pipelineState.timeframeUpdate.on(ctx, () => scheduler.trigger()));
3826
3828
  }
@@ -3842,14 +3844,14 @@ var SpacesServiceImpl = class {
3842
3844
  }
3843
3845
  async postMessage({ spaceKey, channel, message }) {
3844
3846
  const dataSpaceManager = await this._getDataSpaceManager();
3845
- const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3847
+ const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3846
3848
  await space.postMessage(getChannelId(channel), message);
3847
3849
  }
3848
3850
  subscribeMessages({ spaceKey, channel }) {
3849
3851
  return new import_codec_protobuf11.Stream(({ ctx, next }) => {
3850
3852
  (0, import_async13.scheduleTask)(ctx, async () => {
3851
3853
  const dataSpaceManager = await this._getDataSpaceManager();
3852
- const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3854
+ const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3853
3855
  const handle = space.listen(getChannelId(channel), (message) => {
3854
3856
  next(message);
3855
3857
  });
@@ -3857,38 +3859,83 @@ var SpacesServiceImpl = class {
3857
3859
  });
3858
3860
  });
3859
3861
  }
3860
- queryCredentials({ spaceKey }) {
3861
- return new import_codec_protobuf11.Stream(({ ctx, next }) => {
3862
- const space = this._spaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3862
+ queryCredentials({ spaceKey, noTail }) {
3863
+ return new import_codec_protobuf11.Stream(({ ctx, next, close }) => {
3864
+ const space = this._spaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3863
3865
  const processor = {
3864
3866
  processCredential: async (credential) => {
3865
3867
  next(credential);
3866
3868
  }
3867
3869
  };
3868
3870
  ctx.onDispose(() => space.spaceState.removeCredentialProcessor(processor));
3869
- (0, import_async13.scheduleTask)(ctx, () => space.spaceState.addCredentialProcessor(processor));
3871
+ (0, import_async13.scheduleTask)(ctx, async () => {
3872
+ await space.spaceState.addCredentialProcessor(processor);
3873
+ if (noTail) {
3874
+ close();
3875
+ }
3876
+ });
3870
3877
  });
3871
3878
  }
3872
3879
  async writeCredentials({ spaceKey, credentials }) {
3873
- const space = this._spaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3880
+ const space = this._spaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3874
3881
  for (const credential of credentials ?? []) {
3875
- await space.controlPipeline.writer.write({
3876
- credential: {
3877
- credential
3878
- }
3879
- });
3882
+ if (credential.proof) {
3883
+ await space.controlPipeline.writer.write({
3884
+ credential: {
3885
+ credential
3886
+ }
3887
+ });
3888
+ } else {
3889
+ (0, import_invariant12.invariant)(!credential.id, "Id on unsigned credentials is not allowed", {
3890
+ F: __dxlog_file14,
3891
+ L: 168,
3892
+ S: this,
3893
+ A: [
3894
+ "!credential.id",
3895
+ "'Id on unsigned credentials is not allowed'"
3896
+ ]
3897
+ });
3898
+ (0, import_invariant12.invariant)(this._identityManager.identity, "Identity is not available", {
3899
+ F: __dxlog_file14,
3900
+ L: 169,
3901
+ S: this,
3902
+ A: [
3903
+ "this._identityManager.identity",
3904
+ "'Identity is not available'"
3905
+ ]
3906
+ });
3907
+ const signer = this._identityManager.identity.getIdentityCredentialSigner();
3908
+ (0, import_invariant12.invariant)(credential.issuer.equals(signer.getIssuer()), void 0, {
3909
+ F: __dxlog_file14,
3910
+ L: 171,
3911
+ S: this,
3912
+ A: [
3913
+ "credential.issuer.equals(signer.getIssuer())",
3914
+ ""
3915
+ ]
3916
+ });
3917
+ const signedCredential = await signer.createCredential({
3918
+ subject: credential.subject.id,
3919
+ assertion: credential.subject.assertion
3920
+ });
3921
+ await space.controlPipeline.writer.write({
3922
+ credential: {
3923
+ credential: signedCredential
3924
+ }
3925
+ });
3926
+ }
3880
3927
  }
3881
3928
  }
3882
3929
  async createEpoch({ spaceKey }) {
3883
3930
  const dataSpaceManager = await this._getDataSpaceManager();
3884
- const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_echo_pipeline2.SpaceNotFoundError(spaceKey));
3931
+ const space = dataSpaceManager.spaces.get(spaceKey) ?? (0, import_debug6.raise)(new import_protocols9.SpaceNotFoundError(spaceKey));
3885
3932
  await space.createEpoch();
3886
3933
  }
3887
3934
  _serializeSpace(space) {
3888
3935
  return {
3889
3936
  spaceKey: space.key,
3890
3937
  state: space.state,
3891
- error: space.error ? (0, import_protocols8.encodeError)(space.error) : void 0,
3938
+ error: space.error ? (0, import_protocols9.encodeError)(space.error) : void 0,
3892
3939
  pipeline: {
3893
3940
  currentEpoch: space.dataPipeline.currentEpoch,
3894
3941
  appliedEpoch: space.dataPipeline.appliedEpoch,
@@ -3915,7 +3962,7 @@ var SpacesServiceImpl = class {
3915
3962
  displayName: member.assertion.profile?.displayName
3916
3963
  }
3917
3964
  },
3918
- presence: isMe || peers.length > 0 ? import_services9.SpaceMember.PresenceState.ONLINE : import_services9.SpaceMember.PresenceState.OFFLINE,
3965
+ presence: member.removed ? import_services9.SpaceMember.PresenceState.REMOVED : isMe || peers.length > 0 ? import_services9.SpaceMember.PresenceState.ONLINE : import_services9.SpaceMember.PresenceState.OFFLINE,
3919
3966
  peerStates: peers
3920
3967
  };
3921
3968
  }),
@@ -3940,18 +3987,17 @@ function _ts_decorate5(decorators, target, key, desc) {
3940
3987
  }
3941
3988
  var __dxlog_file15 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/services/service-context.ts";
3942
3989
  var ServiceContext = class ServiceContext2 {
3943
- // prettier-ignore
3944
3990
  constructor(storage, networkManager, signalManager, modelFactory) {
3945
3991
  this.storage = storage;
3946
3992
  this.networkManager = networkManager;
3947
3993
  this.signalManager = signalManager;
3948
3994
  this.modelFactory = modelFactory;
3949
3995
  this.initialized = new import_async14.Trigger();
3950
- this.dataServiceSubscriptions = new import_echo_pipeline3.DataServiceSubscriptions();
3996
+ this.dataServiceSubscriptions = new import_echo_pipeline2.DataServiceSubscriptions();
3951
3997
  this._handlerFactories = /* @__PURE__ */ new Map();
3952
3998
  this._instanceId = import_keys10.PublicKey.random().toHex();
3953
- this.metadataStore = new import_echo_pipeline3.MetadataStore(storage.createDirectory("metadata"));
3954
- this.snapshotStore = new import_echo_pipeline3.SnapshotStore(storage.createDirectory("snapshots"));
3999
+ this.metadataStore = new import_echo_pipeline2.MetadataStore(storage.createDirectory("metadata"));
4000
+ this.snapshotStore = new import_echo_pipeline2.SnapshotStore(storage.createDirectory("snapshots"));
3955
4001
  this.blobStore = new import_teleport_extension_object_sync.BlobStore(storage.createDirectory("blobs"));
3956
4002
  this.keyring = new import_keyring.Keyring(storage.createDirectory("keyring"));
3957
4003
  this.feedStore = new import_feed_store4.FeedStore({
@@ -3959,12 +4005,12 @@ var ServiceContext = class ServiceContext2 {
3959
4005
  root: storage.createDirectory("feeds"),
3960
4006
  signer: this.keyring,
3961
4007
  hypercore: {
3962
- valueEncoding: import_echo_pipeline3.valueEncoding,
4008
+ valueEncoding: import_echo_pipeline2.valueEncoding,
3963
4009
  stats: true
3964
4010
  }
3965
4011
  })
3966
4012
  });
3967
- this.spaceManager = new import_echo_pipeline3.SpaceManager({
4013
+ this.spaceManager = new import_echo_pipeline2.SpaceManager({
3968
4014
  feedStore: this.feedStore,
3969
4015
  networkManager: this.networkManager,
3970
4016
  blobStore: this.blobStore,
@@ -3980,15 +4026,15 @@ var ServiceContext = class ServiceContext2 {
3980
4026
  await this._checkStorageVersion();
3981
4027
  (0, import_log13.log)("opening...", void 0, {
3982
4028
  F: __dxlog_file15,
3983
- L: 135,
4029
+ L: 129,
3984
4030
  S: this,
3985
4031
  C: (f, a) => f(...a)
3986
4032
  });
3987
- import_log13.log.trace("dxos.sdk.service-context.open", import_protocols9.trace.begin({
4033
+ import_log13.log.trace("dxos.sdk.service-context.open", import_protocols10.trace.begin({
3988
4034
  id: this._instanceId
3989
4035
  }), {
3990
4036
  F: __dxlog_file15,
3991
- L: 136,
4037
+ L: 130,
3992
4038
  S: this,
3993
4039
  C: (f, a) => f(...a)
3994
4040
  });
@@ -4000,17 +4046,17 @@ var ServiceContext = class ServiceContext2 {
4000
4046
  if (this.identityManager.identity) {
4001
4047
  await this._initialize(ctx);
4002
4048
  }
4003
- import_log13.log.trace("dxos.sdk.service-context.open", import_protocols9.trace.end({
4049
+ import_log13.log.trace("dxos.sdk.service-context.open", import_protocols10.trace.end({
4004
4050
  id: this._instanceId
4005
4051
  }), {
4006
4052
  F: __dxlog_file15,
4007
- L: 146,
4053
+ L: 140,
4008
4054
  S: this,
4009
4055
  C: (f, a) => f(...a)
4010
4056
  });
4011
4057
  (0, import_log13.log)("opened", void 0, {
4012
4058
  F: __dxlog_file15,
4013
- L: 147,
4059
+ L: 141,
4014
4060
  S: this,
4015
4061
  C: (f, a) => f(...a)
4016
4062
  });
@@ -4018,7 +4064,7 @@ var ServiceContext = class ServiceContext2 {
4018
4064
  async close() {
4019
4065
  (0, import_log13.log)("closing...", void 0, {
4020
4066
  F: __dxlog_file15,
4021
- L: 151,
4067
+ L: 145,
4022
4068
  S: this,
4023
4069
  C: (f, a) => f(...a)
4024
4070
  });
@@ -4035,7 +4081,7 @@ var ServiceContext = class ServiceContext2 {
4035
4081
  await this.metadataStore.close();
4036
4082
  (0, import_log13.log)("closed", void 0, {
4037
4083
  F: __dxlog_file15,
4038
- L: 163,
4084
+ L: 157,
4039
4085
  S: this,
4040
4086
  C: (f, a) => f(...a)
4041
4087
  });
@@ -4047,9 +4093,9 @@ var ServiceContext = class ServiceContext2 {
4047
4093
  }
4048
4094
  getInvitationHandler(invitation) {
4049
4095
  const factory = this._handlerFactories.get(invitation.kind);
4050
- (0, import_invariant12.invariant)(factory, `Unknown invitation kind: ${invitation.kind}`, {
4096
+ (0, import_invariant13.invariant)(factory, `Unknown invitation kind: ${invitation.kind}`, {
4051
4097
  F: __dxlog_file15,
4052
- L: 174,
4098
+ L: 168,
4053
4099
  S: this,
4054
4100
  A: [
4055
4101
  "factory",
@@ -4065,15 +4111,15 @@ var ServiceContext = class ServiceContext2 {
4065
4111
  }
4066
4112
  async _checkStorageVersion() {
4067
4113
  await this.metadataStore.load();
4068
- if (this.metadataStore.version !== import_protocols9.STORAGE_VERSION) {
4069
- throw new Error(`Invalid storage version: current=${this.metadataStore.version}, expected=${import_protocols9.STORAGE_VERSION}`);
4114
+ if (this.metadataStore.version !== import_protocols10.STORAGE_VERSION) {
4115
+ throw new import_protocols10.InvalidStorageVersionError(import_protocols10.STORAGE_VERSION, this.metadataStore.version);
4070
4116
  }
4071
4117
  }
4072
4118
  // Called when identity is created.
4073
4119
  async _initialize(ctx) {
4074
4120
  (0, import_log13.log)("initializing spaces...", void 0, {
4075
4121
  F: __dxlog_file15,
4076
- L: 195,
4122
+ L: 189,
4077
4123
  S: this,
4078
4124
  C: (f, a) => f(...a)
4079
4125
  });
@@ -4094,9 +4140,9 @@ var ServiceContext = class ServiceContext2 {
4094
4140
  this.dataSpaceManager = new DataSpaceManager(this.spaceManager, this.metadataStore, this.dataServiceSubscriptions, this.keyring, signingContext, this.feedStore);
4095
4141
  await this.dataSpaceManager.open();
4096
4142
  this._handlerFactories.set(import_services10.Invitation.Kind.SPACE, (invitation) => {
4097
- (0, import_invariant12.invariant)(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
4143
+ (0, import_invariant13.invariant)(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
4098
4144
  F: __dxlog_file15,
4099
- L: 218,
4145
+ L: 212,
4100
4146
  S: this,
4101
4147
  A: [
4102
4148
  "this.dataSpaceManager",
@@ -4120,7 +4166,7 @@ var ServiceContext = class ServiceContext2 {
4120
4166
  details: assertion
4121
4167
  }, {
4122
4168
  F: __dxlog_file15,
4123
- L: 234,
4169
+ L: 228,
4124
4170
  S: this,
4125
4171
  C: (f, a) => f(...a)
4126
4172
  });
@@ -4131,7 +4177,7 @@ var ServiceContext = class ServiceContext2 {
4131
4177
  details: assertion
4132
4178
  }, {
4133
4179
  F: __dxlog_file15,
4134
- L: 238,
4180
+ L: 232,
4135
4181
  S: this,
4136
4182
  C: (f, a) => f(...a)
4137
4183
  });
@@ -4142,7 +4188,7 @@ var ServiceContext = class ServiceContext2 {
4142
4188
  details: assertion
4143
4189
  }, {
4144
4190
  F: __dxlog_file15,
4145
- L: 243,
4191
+ L: 237,
4146
4192
  S: this,
4147
4193
  C: (f, a) => f(...a)
4148
4194
  });
@@ -4153,7 +4199,7 @@ var ServiceContext = class ServiceContext2 {
4153
4199
  } catch (err) {
4154
4200
  import_log13.log.catch(err, void 0, {
4155
4201
  F: __dxlog_file15,
4156
- L: 249,
4202
+ L: 243,
4157
4203
  S: this,
4158
4204
  C: (f, a) => f(...a)
4159
4205
  });
@@ -4179,19 +4225,44 @@ var import_async17 = require("@dxos/async");
4179
4225
  var import_client_protocol5 = require("@dxos/client-protocol");
4180
4226
  var import_context10 = require("@dxos/context");
4181
4227
  var import_document_model2 = require("@dxos/document-model");
4182
- var import_echo_pipeline4 = require("@dxos/echo-pipeline");
4183
- var import_invariant14 = require("@dxos/invariant");
4228
+ var import_echo_pipeline3 = require("@dxos/echo-pipeline");
4229
+ var import_echo_schema = require("@dxos/echo-schema");
4230
+ var import_invariant15 = require("@dxos/invariant");
4184
4231
  var import_keys11 = require("@dxos/keys");
4185
4232
  var import_log16 = require("@dxos/log");
4186
4233
  var import_messaging = require("@dxos/messaging");
4187
4234
  var import_model_factory = require("@dxos/model-factory");
4188
4235
  var import_network_manager2 = require("@dxos/network-manager");
4189
- var import_protocols10 = require("@dxos/protocols");
4236
+ var import_protocols12 = require("@dxos/protocols");
4190
4237
  var import_services14 = require("@dxos/protocols/proto/dxos/client/services");
4191
4238
  var import_text_model = require("@dxos/text-model");
4192
4239
  var import_tracing5 = require("@dxos/tracing");
4193
4240
  var import_websocket_rpc = require("@dxos/websocket-rpc");
4194
4241
 
4242
+ // packages/sdk/client-services/src/packlets/services/service-registry.ts
4243
+ var ServiceRegistry = class {
4244
+ // prettier-ignore
4245
+ constructor(_serviceBundle, _handlers = {}) {
4246
+ this._serviceBundle = _serviceBundle;
4247
+ this._handlers = _handlers;
4248
+ }
4249
+ get descriptors() {
4250
+ return this._serviceBundle;
4251
+ }
4252
+ get services() {
4253
+ return this._handlers;
4254
+ }
4255
+ setServices(services) {
4256
+ this._handlers = services;
4257
+ }
4258
+ addService(name, service) {
4259
+ this._handlers[name] = service;
4260
+ }
4261
+ removeService(name) {
4262
+ delete this._handlers[name];
4263
+ }
4264
+ };
4265
+
4195
4266
  // packages/sdk/client-services/src/packlets/devices/devices-service.ts
4196
4267
  var import_async15 = require("@dxos/async");
4197
4268
  var import_codec_protobuf12 = require("@dxos/codec-protobuf");
@@ -4236,7 +4307,7 @@ var DevicesServiceImpl = class {
4236
4307
  };
4237
4308
 
4238
4309
  // packages/sdk/client-services/src/packlets/locks/node.ts
4239
- var import_invariant13 = require("@dxos/invariant");
4310
+ var import_invariant14 = require("@dxos/invariant");
4240
4311
  var import_lock_file = require("@dxos/lock-file");
4241
4312
  var import_log14 = require("@dxos/log");
4242
4313
  function _ts_decorate6(decorators, target, key, desc) {
@@ -4277,7 +4348,7 @@ var Lock = class {
4277
4348
  }
4278
4349
  async release() {
4279
4350
  await this._onRelease?.();
4280
- (0, import_invariant13.invariant)(this._fileHandle, "Lock is not acquired", {
4351
+ (0, import_invariant14.invariant)(this._fileHandle, "Lock is not acquired", {
4281
4352
  F: __dxlog_file16,
4282
4353
  L: 42,
4283
4354
  S: this,
@@ -4445,29 +4516,29 @@ var NetworkServiceImpl = class {
4445
4516
 
4446
4517
  // packages/sdk/client-services/src/packlets/storage/storage.ts
4447
4518
  var import_client_protocol4 = require("@dxos/client-protocol");
4448
- var import_errors5 = require("@dxos/errors");
4519
+ var import_protocols11 = require("@dxos/protocols");
4449
4520
  var import_config = require("@dxos/protocols/proto/dxos/config");
4450
4521
  var import_random_access_storage = require("@dxos/random-access-storage");
4451
4522
  var import_util8 = require("@dxos/util");
4452
4523
  var StorageDriver = import_config.Runtime.Client.Storage.StorageDriver;
4453
4524
  var createStorageObjects = (config) => {
4454
- const { path = (0, import_util8.isNode)() ? import_client_protocol4.DX_DATA : "dxos/storage", storageType, keyStorage, persistent = false } = config ?? {};
4455
- if (persistent && storageType === StorageDriver.RAM) {
4456
- throw new import_errors5.InvalidConfigError("RAM storage cannot be used in persistent mode.");
4525
+ const { persistent = false, keyStore, dataStore, dataRoot = (0, import_util8.isNode)() ? import_client_protocol4.DX_DATA : "dxos/storage" } = config ?? {};
4526
+ if (persistent && dataStore === StorageDriver.RAM) {
4527
+ throw new import_protocols11.InvalidConfigError("RAM storage cannot be used in persistent mode.");
4457
4528
  }
4458
- if (!persistent && storageType !== void 0 && storageType !== StorageDriver.RAM) {
4459
- throw new import_errors5.InvalidConfigError("Cannot use a persistent storage in not persistent mode.");
4529
+ if (!persistent && dataStore !== void 0 && dataStore !== StorageDriver.RAM) {
4530
+ throw new import_protocols11.InvalidConfigError("Cannot use a persistent storage in not persistent mode.");
4460
4531
  }
4461
- if (persistent && keyStorage === StorageDriver.RAM) {
4462
- throw new import_errors5.InvalidConfigError("RAM key storage cannot be used in persistent mode.");
4532
+ if (persistent && keyStore === StorageDriver.RAM) {
4533
+ throw new import_protocols11.InvalidConfigError("RAM key storage cannot be used in persistent mode.");
4463
4534
  }
4464
- if (!persistent && keyStorage !== StorageDriver.RAM && keyStorage !== void 0) {
4465
- throw new import_errors5.InvalidConfigError("Cannot use a persistent key storage in not persistent mode.");
4535
+ if (!persistent && keyStore !== StorageDriver.RAM && keyStore !== void 0) {
4536
+ throw new import_protocols11.InvalidConfigError("Cannot use a persistent key storage in not persistent mode.");
4466
4537
  }
4467
4538
  return {
4468
4539
  storage: (0, import_random_access_storage.createStorage)({
4469
- type: persistent ? toStorageType(storageType) : import_random_access_storage.StorageType.RAM,
4470
- root: `${path}/`
4540
+ type: persistent ? toStorageType(dataStore) : import_random_access_storage.StorageType.RAM,
4541
+ root: `${dataRoot}/`
4471
4542
  })
4472
4543
  };
4473
4544
  };
@@ -4546,30 +4617,6 @@ var SystemServiceImpl = class {
4546
4617
  }
4547
4618
  };
4548
4619
 
4549
- // packages/sdk/client-services/src/packlets/services/service-registry.ts
4550
- var ServiceRegistry = class {
4551
- // prettier-ignore
4552
- constructor(_serviceBundle, _handlers = {}) {
4553
- this._serviceBundle = _serviceBundle;
4554
- this._handlers = _handlers;
4555
- }
4556
- get descriptors() {
4557
- return this._serviceBundle;
4558
- }
4559
- get services() {
4560
- return this._handlers;
4561
- }
4562
- setServices(services) {
4563
- this._handlers = services;
4564
- }
4565
- addService(name, service) {
4566
- this._handlers[name] = service;
4567
- }
4568
- removeService(name) {
4569
- delete this._handlers[name];
4570
- }
4571
- };
4572
-
4573
4620
  // packages/sdk/client-services/src/packlets/services/service-host.ts
4574
4621
  function _ts_decorate7(decorators, target, key, desc) {
4575
4622
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -4585,6 +4632,18 @@ var __dxlog_file17 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/s
4585
4632
  var createDefaultModelFactory = () => {
4586
4633
  return new import_model_factory.ModelFactory().registerModel(import_document_model2.DocumentModel).registerModel(import_text_model.TextModel);
4587
4634
  };
4635
+ var createGenesisMutationFromTypedObject = (obj) => {
4636
+ const snapshot = obj[import_echo_schema.base]._createSnapshot();
4637
+ return {
4638
+ objectId: obj[import_echo_schema.base]._id,
4639
+ genesis: {
4640
+ modelType: obj[import_echo_schema.base]._modelConstructor.meta.type
4641
+ },
4642
+ snapshot: {
4643
+ model: snapshot
4644
+ }
4645
+ };
4646
+ };
4588
4647
  var ClientServicesHost = class ClientServicesHost2 {
4589
4648
  constructor({
4590
4649
  config,
@@ -4669,9 +4728,9 @@ var ClientServicesHost = class ClientServicesHost2 {
4669
4728
  * Can only be called once.
4670
4729
  */
4671
4730
  initialize({ config, ...options }) {
4672
- (0, import_invariant14.invariant)(!this._open, "service host is open", {
4731
+ (0, import_invariant15.invariant)(!this._open, "service host is open", {
4673
4732
  F: __dxlog_file17,
4674
- L: 184,
4733
+ L: 201,
4675
4734
  S: this,
4676
4735
  A: [
4677
4736
  "!this._open",
@@ -4680,14 +4739,14 @@ var ClientServicesHost = class ClientServicesHost2 {
4680
4739
  });
4681
4740
  (0, import_log16.log)("initializing...", void 0, {
4682
4741
  F: __dxlog_file17,
4683
- L: 185,
4742
+ L: 202,
4684
4743
  S: this,
4685
4744
  C: (f, a) => f(...a)
4686
4745
  });
4687
4746
  if (config) {
4688
- (0, import_invariant14.invariant)(!this._config, "config already set", {
4747
+ (0, import_invariant15.invariant)(!this._config, "config already set", {
4689
4748
  F: __dxlog_file17,
4690
- L: 188,
4749
+ L: 205,
4691
4750
  S: this,
4692
4751
  A: [
4693
4752
  "!this._config",
@@ -4703,9 +4762,9 @@ var ClientServicesHost = class ClientServicesHost2 {
4703
4762
  iceServers: this._config?.get("runtime.services.ice")
4704
4763
  }), signalManager = new import_messaging.WebsocketSignalManager(this._config?.get("runtime.services.signaling") ?? []) } = options;
4705
4764
  this._signalManager = signalManager;
4706
- (0, import_invariant14.invariant)(!this._networkManager, "network manager already set", {
4765
+ (0, import_invariant15.invariant)(!this._networkManager, "network manager already set", {
4707
4766
  F: __dxlog_file17,
4708
- L: 204,
4767
+ L: 221,
4709
4768
  S: this,
4710
4769
  A: [
4711
4770
  "!this._networkManager",
@@ -4719,7 +4778,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4719
4778
  });
4720
4779
  (0, import_log16.log)("initialized", void 0, {
4721
4780
  F: __dxlog_file17,
4722
- L: 211,
4781
+ L: 228,
4723
4782
  S: this,
4724
4783
  C: (f, a) => f(...a)
4725
4784
  });
@@ -4729,44 +4788,44 @@ var ClientServicesHost = class ClientServicesHost2 {
4729
4788
  return;
4730
4789
  }
4731
4790
  const traceId = import_keys11.PublicKey.random().toHex();
4732
- import_log16.log.trace("dxos.client-services.host.open", import_protocols10.trace.begin({
4791
+ import_log16.log.trace("dxos.client-services.host.open", import_protocols12.trace.begin({
4733
4792
  id: traceId
4734
4793
  }), {
4735
4794
  F: __dxlog_file17,
4736
- L: 222,
4795
+ L: 239,
4737
4796
  S: this,
4738
4797
  C: (f, a) => f(...a)
4739
4798
  });
4740
- (0, import_invariant14.invariant)(this._config, "config not set", {
4799
+ (0, import_invariant15.invariant)(this._config, "config not set", {
4741
4800
  F: __dxlog_file17,
4742
- L: 224,
4801
+ L: 241,
4743
4802
  S: this,
4744
4803
  A: [
4745
4804
  "this._config",
4746
4805
  "'config not set'"
4747
4806
  ]
4748
4807
  });
4749
- (0, import_invariant14.invariant)(this._storage, "storage not set", {
4808
+ (0, import_invariant15.invariant)(this._storage, "storage not set", {
4750
4809
  F: __dxlog_file17,
4751
- L: 225,
4810
+ L: 242,
4752
4811
  S: this,
4753
4812
  A: [
4754
4813
  "this._storage",
4755
4814
  "'storage not set'"
4756
4815
  ]
4757
4816
  });
4758
- (0, import_invariant14.invariant)(this._signalManager, "signal manager not set", {
4817
+ (0, import_invariant15.invariant)(this._signalManager, "signal manager not set", {
4759
4818
  F: __dxlog_file17,
4760
- L: 226,
4819
+ L: 243,
4761
4820
  S: this,
4762
4821
  A: [
4763
4822
  "this._signalManager",
4764
4823
  "'signal manager not set'"
4765
4824
  ]
4766
4825
  });
4767
- (0, import_invariant14.invariant)(this._networkManager, "network manager not set", {
4826
+ (0, import_invariant15.invariant)(this._networkManager, "network manager not set", {
4768
4827
  F: __dxlog_file17,
4769
- L: 227,
4828
+ L: 244,
4770
4829
  S: this,
4771
4830
  A: [
4772
4831
  "this._networkManager",
@@ -4778,7 +4837,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4778
4837
  lockKey: this._resourceLock?.lockKey
4779
4838
  }, {
4780
4839
  F: __dxlog_file17,
4781
- L: 230,
4840
+ L: 247,
4782
4841
  S: this,
4783
4842
  C: (f, a) => f(...a)
4784
4843
  });
@@ -4787,14 +4846,14 @@ var ClientServicesHost = class ClientServicesHost2 {
4787
4846
  this._serviceContext = new ServiceContext(this._storage, this._networkManager, this._signalManager, this._modelFactory);
4788
4847
  this._serviceRegistry.setServices({
4789
4848
  SystemService: this._systemService,
4790
- IdentityService: new IdentityServiceImpl((params) => this._serviceContext.createIdentity(params), this._serviceContext.identityManager, this._serviceContext.keyring),
4849
+ IdentityService: new IdentityServiceImpl((params) => this._createIdentity(params), this._serviceContext.identityManager, this._serviceContext.keyring),
4791
4850
  InvitationsService: new InvitationsServiceImpl(this._serviceContext.invitations, (invitation) => this._serviceContext.getInvitationHandler(invitation)),
4792
4851
  DevicesService: new DevicesServiceImpl(this._serviceContext.identityManager),
4793
4852
  SpacesService: new SpacesServiceImpl(this._serviceContext.identityManager, this._serviceContext.spaceManager, this._serviceContext.dataServiceSubscriptions, async () => {
4794
4853
  await this._serviceContext.initialized.wait();
4795
4854
  return this._serviceContext.dataSpaceManager;
4796
4855
  }),
4797
- DataService: new import_echo_pipeline4.DataServiceImpl(this._serviceContext.dataServiceSubscriptions),
4856
+ DataService: new import_echo_pipeline3.DataServiceImpl(this._serviceContext.dataServiceSubscriptions),
4798
4857
  NetworkService: new NetworkServiceImpl(this._serviceContext.networkManager, this._serviceContext.signalManager),
4799
4858
  LoggingService: this._loggingService,
4800
4859
  TracingService: this._tracingService,
@@ -4824,15 +4883,15 @@ var ClientServicesHost = class ClientServicesHost2 {
4824
4883
  deviceKey
4825
4884
  }, {
4826
4885
  F: __dxlog_file17,
4827
- L: 299,
4886
+ L: 316,
4828
4887
  S: this,
4829
4888
  C: (f, a) => f(...a)
4830
4889
  });
4831
- import_log16.log.trace("dxos.client-services.host.open", import_protocols10.trace.end({
4890
+ import_log16.log.trace("dxos.client-services.host.open", import_protocols12.trace.end({
4832
4891
  id: traceId
4833
4892
  }), {
4834
4893
  F: __dxlog_file17,
4835
- L: 300,
4894
+ L: 317,
4836
4895
  S: this,
4837
4896
  C: (f, a) => f(...a)
4838
4897
  });
@@ -4846,7 +4905,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4846
4905
  deviceKey
4847
4906
  }, {
4848
4907
  F: __dxlog_file17,
4849
- L: 311,
4908
+ L: 328,
4850
4909
  S: this,
4851
4910
  C: (f, a) => f(...a)
4852
4911
  });
@@ -4862,24 +4921,24 @@ var ClientServicesHost = class ClientServicesHost2 {
4862
4921
  deviceKey
4863
4922
  }, {
4864
4923
  F: __dxlog_file17,
4865
- L: 318,
4924
+ L: 335,
4866
4925
  S: this,
4867
4926
  C: (f, a) => f(...a)
4868
4927
  });
4869
4928
  }
4870
4929
  async reset() {
4871
4930
  const traceId = import_keys11.PublicKey.random().toHex();
4872
- import_log16.log.trace("dxos.sdk.client-services-host.reset", import_protocols10.trace.begin({
4931
+ import_log16.log.trace("dxos.sdk.client-services-host.reset", import_protocols12.trace.begin({
4873
4932
  id: traceId
4874
4933
  }), {
4875
4934
  F: __dxlog_file17,
4876
- L: 323,
4935
+ L: 340,
4877
4936
  S: this,
4878
4937
  C: (f, a) => f(...a)
4879
4938
  });
4880
4939
  (0, import_log16.log)("resetting...", void 0, {
4881
4940
  F: __dxlog_file17,
4882
- L: 325,
4941
+ L: 342,
4883
4942
  S: this,
4884
4943
  C: (f, a) => f(...a)
4885
4944
  });
@@ -4887,20 +4946,39 @@ var ClientServicesHost = class ClientServicesHost2 {
4887
4946
  await this._storage.reset();
4888
4947
  (0, import_log16.log)("reset", void 0, {
4889
4948
  F: __dxlog_file17,
4890
- L: 328,
4949
+ L: 345,
4891
4950
  S: this,
4892
4951
  C: (f, a) => f(...a)
4893
4952
  });
4894
- import_log16.log.trace("dxos.sdk.client-services-host.reset", import_protocols10.trace.end({
4953
+ import_log16.log.trace("dxos.sdk.client-services-host.reset", import_protocols12.trace.end({
4895
4954
  id: traceId
4896
4955
  }), {
4897
4956
  F: __dxlog_file17,
4898
- L: 329,
4957
+ L: 346,
4899
4958
  S: this,
4900
4959
  C: (f, a) => f(...a)
4901
4960
  });
4902
4961
  await this._callbacks?.onReset?.();
4903
4962
  }
4963
+ async _createIdentity(params) {
4964
+ const identity = await this._serviceContext.createIdentity(params);
4965
+ await this._serviceContext.initialized.wait();
4966
+ const space = await this._serviceContext.dataSpaceManager.createSpace();
4967
+ const obj = new import_client_protocol5.Properties();
4968
+ obj[import_client_protocol5.defaultKey] = identity.identityKey.toHex();
4969
+ await this._serviceRegistry.services.DataService.write({
4970
+ spaceKey: space.key,
4971
+ batch: {
4972
+ objects: [
4973
+ createGenesisMutationFromTypedObject(obj)
4974
+ ]
4975
+ }
4976
+ });
4977
+ await this._serviceRegistry.services.DataService.flush({
4978
+ spaceKey: space.key
4979
+ });
4980
+ return identity;
4981
+ }
4904
4982
  };
4905
4983
  _ts_decorate7([
4906
4984
  import_tracing5.trace.info()
@@ -4932,7 +5010,7 @@ var import_util10 = require("@dxos/util");
4932
5010
  // packages/sdk/client-services/src/packlets/vault/shell-runtime.ts
4933
5011
  var import_async18 = require("@dxos/async");
4934
5012
  var import_client_protocol6 = require("@dxos/client-protocol");
4935
- var import_invariant15 = require("@dxos/invariant");
5013
+ var import_invariant16 = require("@dxos/invariant");
4936
5014
  var import_iframe = require("@dxos/protocols/proto/dxos/iframe");
4937
5015
  var import_rpc2 = require("@dxos/rpc");
4938
5016
  var __dxlog_file18 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/vault/shell-runtime.ts";
@@ -4951,17 +5029,18 @@ var ShellRuntimeImpl = class {
4951
5029
  get spaceKey() {
4952
5030
  return this._spaceKey;
4953
5031
  }
4954
- setLayout(layout, options = {}) {
5032
+ setLayout({ layout, invitationCode, spaceKey }) {
4955
5033
  this._layout = layout;
4956
- this._invitationCode = options.invitationCode;
4957
- this._spaceKey = options.spaceKey;
5034
+ this._invitationCode = invitationCode;
5035
+ this._spaceKey = spaceKey;
4958
5036
  this.layoutUpdate.emit({
4959
5037
  layout,
4960
- ...options
5038
+ invitationCode,
5039
+ spaceKey
4961
5040
  });
4962
5041
  }
4963
5042
  async setAppContext(context) {
4964
- (0, import_invariant15.invariant)(this._appRpc, "runtime not open", {
5043
+ (0, import_invariant16.invariant)(this._appRpc, "runtime not open", {
4965
5044
  F: __dxlog_file18,
4966
5045
  L: 44,
4967
5046
  S: this,
@@ -5117,9 +5196,9 @@ _ts_decorate8([
5117
5196
  // packages/sdk/client-services/src/packlets/vault/iframe-proxy-runtime.ts
5118
5197
  var import_async20 = require("@dxos/async");
5119
5198
  var import_client_protocol8 = require("@dxos/client-protocol");
5120
- var import_errors6 = require("@dxos/errors");
5121
5199
  var import_log18 = require("@dxos/log");
5122
5200
  var import_network_manager4 = require("@dxos/network-manager");
5201
+ var import_protocols13 = require("@dxos/protocols");
5123
5202
  var import_rpc3 = require("@dxos/rpc");
5124
5203
  var import_util11 = require("@dxos/util");
5125
5204
  var __dxlog_file20 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/vault/iframe-proxy-runtime.ts";
@@ -5175,7 +5254,7 @@ var IFrameProxyRuntime = class {
5175
5254
  S: this,
5176
5255
  C: (f, a) => f(...a)
5177
5256
  });
5178
- throw new import_errors6.RemoteServiceConnectionError("Failed to connect to worker");
5257
+ throw new import_protocols13.RemoteServiceConnectionError("Failed to connect to worker");
5179
5258
  }
5180
5259
  await this._shellRuntime?.open();
5181
5260
  }
@@ -5200,7 +5279,7 @@ var import_network_manager5 = require("@dxos/network-manager");
5200
5279
  // packages/sdk/client-services/src/packlets/vault/worker-session.ts
5201
5280
  var import_async21 = require("@dxos/async");
5202
5281
  var import_client_protocol9 = require("@dxos/client-protocol");
5203
- var import_invariant16 = require("@dxos/invariant");
5282
+ var import_invariant17 = require("@dxos/invariant");
5204
5283
  var import_log19 = require("@dxos/log");
5205
5284
  var import_rpc4 = require("@dxos/rpc");
5206
5285
  var import_util12 = require("@dxos/util");
@@ -5219,7 +5298,7 @@ var WorkerSession = class {
5219
5298
  constructor({ serviceHost, systemPort, appPort, shellPort, readySignal }) {
5220
5299
  this._startTrigger = new import_async21.Trigger();
5221
5300
  this.onClose = new import_util12.Callback();
5222
- (0, import_invariant16.invariant)(serviceHost, void 0, {
5301
+ (0, import_invariant17.invariant)(serviceHost, void 0, {
5223
5302
  F: __dxlog_file21,
5224
5303
  L: 49,
5225
5304
  S: this,
@@ -5370,7 +5449,6 @@ _ts_decorate9([
5370
5449
  // packages/sdk/client-services/src/packlets/vault/worker-runtime.ts
5371
5450
  var __dxlog_file22 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/vault/worker-runtime.ts";
5372
5451
  var WorkerRuntime = class {
5373
- // prettier-ignore
5374
5452
  constructor(_configProvider) {
5375
5453
  this._configProvider = _configProvider;
5376
5454
  this._transportFactory = new import_network_manager5.SimplePeerTransportProxyFactory();
@@ -5390,7 +5468,7 @@ var WorkerRuntime = class {
5390
5468
  async start() {
5391
5469
  (0, import_log20.log)("starting...", void 0, {
5392
5470
  F: __dxlog_file22,
5393
- L: 49,
5471
+ L: 52,
5394
5472
  S: this,
5395
5473
  C: (f, a) => f(...a)
5396
5474
  });
@@ -5406,7 +5484,7 @@ var WorkerRuntime = class {
5406
5484
  this._ready.wake(void 0);
5407
5485
  (0, import_log20.log)("started", void 0, {
5408
5486
  F: __dxlog_file22,
5409
- L: 63,
5487
+ L: 66,
5410
5488
  S: this,
5411
5489
  C: (f, a) => f(...a)
5412
5490
  });
@@ -5414,7 +5492,7 @@ var WorkerRuntime = class {
5414
5492
  this._ready.wake(err);
5415
5493
  import_log20.log.error("starting", err, {
5416
5494
  F: __dxlog_file22,
5417
- L: 66,
5495
+ L: 69,
5418
5496
  S: this,
5419
5497
  C: (f, a) => f(...a)
5420
5498
  });
@@ -5448,7 +5526,7 @@ var WorkerRuntime = class {
5448
5526
  _reconnectWebrtc() {
5449
5527
  (0, import_log20.log)("reconnecting webrtc...", void 0, {
5450
5528
  F: __dxlog_file22,
5451
- L: 103,
5529
+ L: 106,
5452
5530
  S: this,
5453
5531
  C: (f, a) => f(...a)
5454
5532
  });