@dxos/echo-pipeline 0.5.7 → 0.5.8-main.1e35f75

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 (44) hide show
  1. package/dist/lib/browser/{chunk-GANAND63.mjs → chunk-BE5QQHWH.mjs} +43 -15
  2. package/dist/lib/browser/{chunk-GANAND63.mjs.map → chunk-BE5QQHWH.mjs.map} +3 -3
  3. package/dist/lib/browser/index.mjs +13 -9
  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 +99 -4
  7. package/dist/lib/browser/testing/index.mjs.map +4 -4
  8. package/dist/lib/node/{chunk-M475BGBI.cjs → chunk-ZELCNJ3D.cjs} +54 -25
  9. package/dist/lib/node/chunk-ZELCNJ3D.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +34 -30
  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 +107 -13
  14. package/dist/lib/node/testing/index.cjs.map +4 -4
  15. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  16. package/dist/types/src/automerge/migrations.d.ts.map +1 -1
  17. package/dist/types/src/space/space-manager.d.ts +2 -2
  18. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  19. package/dist/types/src/space/space-protocol.d.ts +2 -2
  20. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  21. package/dist/types/src/space/space.d.ts +9 -1
  22. package/dist/types/src/space/space.d.ts.map +1 -1
  23. package/dist/types/src/testing/index.d.ts +1 -0
  24. package/dist/types/src/testing/index.d.ts.map +1 -1
  25. package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
  26. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  27. package/dist/types/src/testing/test-network-adapter.d.ts +18 -0
  28. package/dist/types/src/testing/test-network-adapter.d.ts.map +1 -0
  29. package/package.json +33 -33
  30. package/src/automerge/automerge-doc-loader.test.ts +2 -1
  31. package/src/automerge/automerge-doc-loader.ts +1 -1
  32. package/src/automerge/automerge-host.test.ts +1 -553
  33. package/src/automerge/automerge-host.ts +12 -5
  34. package/src/automerge/automerge-repo.test.ts +450 -2
  35. package/src/automerge/migrations.ts +2 -1
  36. package/src/automerge/storage-adapter.test.ts +81 -15
  37. package/src/space/space-manager.ts +6 -4
  38. package/src/space/space-protocol.test.ts +3 -3
  39. package/src/space/space-protocol.ts +3 -3
  40. package/src/space/space.ts +30 -1
  41. package/src/testing/index.ts +1 -0
  42. package/src/testing/test-agent-builder.ts +4 -4
  43. package/src/testing/test-network-adapter.ts +62 -0
  44. package/dist/lib/node/chunk-M475BGBI.cjs.map +0 -7
@@ -1150,7 +1150,9 @@ var AuthExtension = class extends RpcExtension {
1150
1150
  // packages/core/echo/echo-pipeline/src/space/space.ts
1151
1151
  import { Event as Event4, Mutex, synchronized as synchronized3, trackLeaks as trackLeaks2 } from "@dxos/async";
1152
1152
  import { LifecycleState, Resource } from "@dxos/context";
1153
+ import { subtleCrypto as subtleCrypto2 } from "@dxos/crypto";
1153
1154
  import { invariant as invariant6 } from "@dxos/invariant";
1155
+ import { SpaceId } from "@dxos/keys";
1154
1156
  import { log as log7, logInfo } from "@dxos/log";
1155
1157
  import { AdmittedFeed as AdmittedFeed2 } from "@dxos/protocols/proto/dxos/halo/credentials";
1156
1158
  import { trace as trace2 } from "@dxos/tracing";
@@ -1439,13 +1441,14 @@ var Space = class extends Resource {
1439
1441
  this.stateUpdate = new Event4();
1440
1442
  invariant6(params.spaceKey && params.feedProvider, void 0, {
1441
1443
  F: __dxlog_file8,
1442
- L: 75,
1444
+ L: 78,
1443
1445
  S: this,
1444
1446
  A: [
1445
1447
  "params.spaceKey && params.feedProvider",
1446
1448
  ""
1447
1449
  ]
1448
1450
  });
1451
+ this._id = params.id;
1449
1452
  this._key = params.spaceKey;
1450
1453
  this._genesisFeedKey = params.genesisFeed.key;
1451
1454
  this._feedProvider = params.feedProvider;
@@ -1472,7 +1475,7 @@ var Space = class extends Resource {
1472
1475
  credential
1473
1476
  }, {
1474
1477
  F: __dxlog_file8,
1475
- L: 102,
1478
+ L: 106,
1476
1479
  S: this,
1477
1480
  C: (f, a) => f(...a)
1478
1481
  });
@@ -1483,7 +1486,7 @@ var Space = class extends Resource {
1483
1486
  invitation
1484
1487
  }, {
1485
1488
  F: __dxlog_file8,
1486
- L: 106,
1489
+ L: 110,
1487
1490
  S: this,
1488
1491
  C: (f, a) => f(...a)
1489
1492
  });
@@ -1494,7 +1497,7 @@ var Space = class extends Resource {
1494
1497
  invitation
1495
1498
  }, {
1496
1499
  F: __dxlog_file8,
1497
- L: 110,
1500
+ L: 114,
1498
1501
  S: this,
1499
1502
  C: (f, a) => f(...a)
1500
1503
  });
@@ -1508,7 +1511,7 @@ var Space = class extends Resource {
1508
1511
  ])
1509
1512
  }), {
1510
1513
  F: __dxlog_file8,
1511
- L: 114,
1514
+ L: 118,
1512
1515
  S: this,
1513
1516
  C: (f, a) => f(...a)
1514
1517
  });
@@ -1517,6 +1520,9 @@ var Space = class extends Resource {
1517
1520
  this.protocol = params.protocol;
1518
1521
  this.protocol.addFeed(params.genesisFeed);
1519
1522
  }
1523
+ get id() {
1524
+ return this._id;
1525
+ }
1520
1526
  get key() {
1521
1527
  return this._key;
1522
1528
  }
@@ -1547,7 +1553,7 @@ var Space = class extends Resource {
1547
1553
  async setControlFeed(feed) {
1548
1554
  invariant6(!this._controlFeed, "Control feed already set.", {
1549
1555
  F: __dxlog_file8,
1550
- L: 161,
1556
+ L: 171,
1551
1557
  S: this,
1552
1558
  A: [
1553
1559
  "!this._controlFeed",
@@ -1561,7 +1567,7 @@ var Space = class extends Resource {
1561
1567
  async setDataFeed(feed) {
1562
1568
  invariant6(!this._dataFeed, "Data feed already set.", {
1563
1569
  F: __dxlog_file8,
1564
- L: 168,
1570
+ L: 178,
1565
1571
  S: this,
1566
1572
  A: [
1567
1573
  "!this._dataFeed",
@@ -1580,7 +1586,7 @@ var Space = class extends Resource {
1580
1586
  async _open(ctx) {
1581
1587
  log7("opening...", void 0, {
1582
1588
  F: __dxlog_file8,
1583
- L: 182,
1589
+ L: 192,
1584
1590
  S: this,
1585
1591
  C: (f, a) => f(...a)
1586
1592
  });
@@ -1588,7 +1594,7 @@ var Space = class extends Resource {
1588
1594
  await this.protocol.start();
1589
1595
  log7("opened", void 0, {
1590
1596
  F: __dxlog_file8,
1591
- L: 188,
1597
+ L: 198,
1592
1598
  S: this,
1593
1599
  C: (f, a) => f(...a)
1594
1600
  });
@@ -1598,7 +1604,7 @@ var Space = class extends Resource {
1598
1604
  key: this._key
1599
1605
  }, {
1600
1606
  F: __dxlog_file8,
1601
- L: 193,
1607
+ L: 203,
1602
1608
  S: this,
1603
1609
  C: (f, a) => f(...a)
1604
1610
  });
@@ -1606,7 +1612,7 @@ var Space = class extends Resource {
1606
1612
  await this._controlPipeline.stop();
1607
1613
  log7("closed", void 0, {
1608
1614
  F: __dxlog_file8,
1609
- L: 199,
1615
+ L: 209,
1610
1616
  S: this,
1611
1617
  C: (f, a) => f(...a)
1612
1618
  });
@@ -1618,6 +1624,10 @@ _ts_decorate5([
1618
1624
  _ts_decorate5([
1619
1625
  trace2.info()
1620
1626
  ], Space.prototype, "_controlPipeline", void 0);
1627
+ _ts_decorate5([
1628
+ logInfo,
1629
+ trace2.info()
1630
+ ], Space.prototype, "id", null);
1621
1631
  _ts_decorate5([
1622
1632
  logInfo,
1623
1633
  trace2.info()
@@ -1632,9 +1642,24 @@ Space = _ts_decorate5([
1632
1642
  trackLeaks2("open", "close"),
1633
1643
  trace2.resource()
1634
1644
  ], Space);
1645
+ var createIdFromSpaceKey = async (spaceKey) => {
1646
+ invariant6(spaceKey.length === EXPECTED_SPACE_KEY_LENGTH, void 0, {
1647
+ F: __dxlog_file8,
1648
+ L: 219,
1649
+ S: void 0,
1650
+ A: [
1651
+ "spaceKey.length === EXPECTED_SPACE_KEY_LENGTH",
1652
+ ""
1653
+ ]
1654
+ });
1655
+ const digest = await subtleCrypto2.digest("SHA-256", spaceKey.asUint8Array());
1656
+ const bytes = new Uint8Array(digest).slice(0, SpaceId.byteLength);
1657
+ return SpaceId.encode(bytes);
1658
+ };
1659
+ var EXPECTED_SPACE_KEY_LENGTH = 65;
1635
1660
 
1636
1661
  // packages/core/echo/echo-pipeline/src/space/space-protocol.ts
1637
- import { discoveryKey, subtleCrypto as subtleCrypto2 } from "@dxos/crypto";
1662
+ import { discoveryKey, subtleCrypto as subtleCrypto3 } from "@dxos/crypto";
1638
1663
  import { PublicKey as PublicKey5 } from "@dxos/keys";
1639
1664
  import { log as log8, logInfo as logInfo2 } from "@dxos/log";
1640
1665
  import { MMSTTopology } from "@dxos/network-manager";
@@ -1674,7 +1699,7 @@ var SpaceProtocol = class {
1674
1699
  this.blobSync = new BlobSync({
1675
1700
  blobStore
1676
1701
  });
1677
- this._topic = subtleCrypto2.digest("SHA-256", topic.asBuffer()).then(discoveryKey).then(PublicKey5.from);
1702
+ this._topic = subtleCrypto3.digest("SHA-256", topic.asBuffer()).then(discoveryKey).then(PublicKey5.from);
1678
1703
  }
1679
1704
  get sessions() {
1680
1705
  return this._sessions;
@@ -1910,6 +1935,7 @@ var SpaceManager = class {
1910
1935
  });
1911
1936
  const genesisFeed = await this._feedStore.openFeed(metadata.genesisFeedKey ?? failUndefined2());
1912
1937
  const spaceKey = metadata.key;
1938
+ const spaceId = await createIdFromSpaceKey(spaceKey);
1913
1939
  const protocol = new SpaceProtocol({
1914
1940
  topic: spaceKey,
1915
1941
  swarmIdentity,
@@ -1920,6 +1946,7 @@ var SpaceManager = class {
1920
1946
  });
1921
1947
  const snapshotManager = new SnapshotManager(this._snapshotStore, this._blobStore, protocol.blobSync);
1922
1948
  const space = new Space({
1949
+ id: spaceId,
1923
1950
  spaceKey,
1924
1951
  protocol,
1925
1952
  genesisFeed,
@@ -1935,7 +1962,7 @@ var SpaceManager = class {
1935
1962
  id: this._instanceId
1936
1963
  }), {
1937
1964
  F: __dxlog_file10,
1938
- L: 124,
1965
+ L: 126,
1939
1966
  S: this,
1940
1967
  C: (f, a) => f(...a)
1941
1968
  });
@@ -1969,6 +1996,7 @@ export {
1969
1996
  Pipeline,
1970
1997
  AuthExtension,
1971
1998
  Space,
1999
+ createIdFromSpaceKey,
1972
2000
  MOCK_AUTH_PROVIDER,
1973
2001
  MOCK_AUTH_VERIFIER,
1974
2002
  SpaceProtocol,
@@ -1976,4 +2004,4 @@ export {
1976
2004
  SpaceProtocolSession,
1977
2005
  SpaceManager
1978
2006
  };
1979
- //# sourceMappingURL=chunk-GANAND63.mjs.map
2007
+ //# sourceMappingURL=chunk-BE5QQHWH.mjs.map