@dxos/echo-pipeline 0.5.2 → 0.5.3-main.056e7da

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 (62) hide show
  1. package/dist/lib/browser/{chunk-VQQD32DM.mjs → chunk-GANAND63.mjs} +49 -30
  2. package/dist/lib/browser/chunk-GANAND63.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +431 -291
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing/index.mjs +3 -1
  7. package/dist/lib/browser/testing/index.mjs.map +3 -3
  8. package/dist/lib/node/{chunk-P7L7ICAH.cjs → chunk-M475BGBI.cjs} +50 -32
  9. package/dist/lib/node/chunk-M475BGBI.cjs.map +7 -0
  10. package/dist/lib/node/index.cjs +441 -301
  11. package/dist/lib/node/index.cjs.map +4 -4
  12. package/dist/lib/node/meta.json +1 -1
  13. package/dist/lib/node/testing/index.cjs +13 -11
  14. package/dist/lib/node/testing/index.cjs.map +3 -3
  15. package/dist/types/src/automerge/automerge-host.d.ts +4 -11
  16. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  17. package/dist/types/src/automerge/echo-network-adapter.d.ts +6 -0
  18. package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
  19. package/dist/types/src/automerge/echo-replicator.d.ts +2 -0
  20. package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
  21. package/dist/types/src/automerge/index.d.ts +1 -1
  22. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +2 -2
  23. package/dist/types/src/automerge/mesh-echo-replicator.d.ts +23 -0
  24. package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -0
  25. package/dist/types/src/automerge/migrations.d.ts +2 -2
  26. package/dist/types/src/automerge/migrations.d.ts.map +1 -1
  27. package/dist/types/src/common/feeds.d.ts.map +1 -1
  28. package/dist/types/src/db-host/snapshot-manager.d.ts +2 -2
  29. package/dist/types/src/db-host/snapshot-manager.d.ts.map +1 -1
  30. package/dist/types/src/db-host/snapshot-store.d.ts +2 -2
  31. package/dist/types/src/db-host/snapshot-store.d.ts.map +1 -1
  32. package/dist/types/src/metadata/metadata-store.d.ts +1 -1
  33. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  34. package/dist/types/src/space/space-manager.d.ts +3 -2
  35. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  36. package/dist/types/src/space/space-protocol.d.ts +2 -0
  37. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  38. package/dist/types/src/space/space.d.ts +4 -3
  39. package/dist/types/src/space/space.d.ts.map +1 -1
  40. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  41. package/package.json +33 -33
  42. package/src/automerge/automerge-host.test.ts +22 -9
  43. package/src/automerge/automerge-host.ts +68 -90
  44. package/src/automerge/automerge-repo.test.ts +10 -1
  45. package/src/automerge/echo-network-adapter.ts +19 -0
  46. package/src/automerge/echo-replicator.ts +3 -0
  47. package/src/automerge/index.ts +1 -1
  48. package/src/automerge/leveldb-storage-adapter.ts +2 -2
  49. package/src/automerge/mesh-echo-replicator.ts +231 -0
  50. package/src/automerge/migrations.ts +2 -2
  51. package/src/db-host/snapshot-manager.ts +1 -1
  52. package/src/db-host/snapshot-store.ts +1 -1
  53. package/src/metadata/metadata-store.ts +2 -2
  54. package/src/space/space-manager.ts +4 -1
  55. package/src/space/space-protocol.ts +11 -8
  56. package/src/space/space.ts +8 -3
  57. package/src/testing/test-agent-builder.ts +1 -0
  58. package/dist/lib/browser/chunk-VQQD32DM.mjs.map +0 -7
  59. package/dist/lib/node/chunk-P7L7ICAH.cjs.map +0 -7
  60. package/dist/types/src/automerge/mesh-network-adapter.d.ts +0 -18
  61. package/dist/types/src/automerge/mesh-network-adapter.d.ts.map +0 -1
  62. package/src/automerge/mesh-network-adapter.ts +0 -107
@@ -1,7 +1,7 @@
1
- import { type SubLevelDB } from '@dxos/kv-store';
1
+ import { type SublevelDB } from '@dxos/kv-store';
2
2
  import { type Directory } from '@dxos/random-access-storage';
3
3
  export declare const levelMigration: ({ db, directory }: {
4
- db: SubLevelDB;
4
+ db: SublevelDB;
5
5
  directory: Directory;
6
6
  }) => Promise<void>;
7
7
  //# sourceMappingURL=migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/automerge/migrations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAK1E,eAAO,MAAM,cAAc;;eAA0D,SAAS;mBA2B7F,CAAC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/automerge/migrations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAK1E,eAAO,MAAM,cAAc,sBAA6B;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,kBA2B/F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/common/feeds.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,sBAAsB,yIAUlC,CAAC"}
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/common/feeds.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,sBAAsB,iDACzB,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,MAAM,CAAC,UACrC,WAAW,MAAM,CAAC,KACzB,WAAW,MAAM,CAOnB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type Context } from '@dxos/context';
2
- import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
2
+ import { type SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
3
3
  import { type BlobStore, type BlobSync } from '@dxos/teleport-extension-object-sync';
4
4
  import { type SnapshotStore } from './snapshot-store';
5
- declare const SpaceSnapshot: import("@dxos/codec-protobuf").ProtoCodec<SpaceSnapshot>;
5
+ declare const SpaceSnapshot: import("packages/common/codec-protobuf/dist/types/src").ProtoCodec<SpaceSnapshot>;
6
6
  /**
7
7
  * Snapshot manager for a specific space.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-manager.d.ts","sourceRoot":"","sources":["../../../../src/db-host/snapshot-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAqB,MAAM,eAAe,CAAC;AAIhE,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,QAAA,MAAM,aAAa,0DAA6D,CAAC;AAEjF;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,QAAQ;YAGxB,QAAQ;IAKhB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBtD,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAKtD"}
1
+ {"version":3,"file":"snapshot-manager.d.ts","sourceRoot":"","sources":["../../../../src/db-host/snapshot-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAqB,MAAM,eAAe,CAAC;AAIhE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,QAAA,MAAM,aAAa,mFAA6D,CAAC;AAEjF;;GAEG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,SAAS,EAAE,QAAQ;YAGxB,QAAQ;IAKhB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBtD,KAAK,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;CAKtD"}
@@ -1,7 +1,7 @@
1
1
  import { type StoredSnapshotInfo } from '@dxos/protocols/proto/dxos/devtools/host';
2
- import { SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
2
+ import { type SpaceSnapshot } from '@dxos/protocols/proto/dxos/echo/snapshot';
3
3
  import { type Directory } from '@dxos/random-access-storage';
4
- declare const SpaceSnapshot: import("@dxos/codec-protobuf").ProtoCodec<SpaceSnapshot>;
4
+ declare const SpaceSnapshot: import("packages/common/codec-protobuf/dist/types/src").ProtoCodec<SpaceSnapshot>;
5
5
  /**
6
6
  * @deprecated
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../../src/db-host/snapshot-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,QAAA,MAAM,aAAa,0DAA6D,CAAC;AACjF;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAE5C,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAe7D,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAarD"}
1
+ {"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../../src/db-host/snapshot-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,QAAA,MAAM,aAAa,mFAA6D,CAAC;AACjF;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAE5C,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAetD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAe7D,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAarD"}
@@ -1,7 +1,7 @@
1
1
  import { Event } from '@dxos/async';
2
2
  import { PublicKey } from '@dxos/keys';
3
3
  import { Invitation, SpaceState } from '@dxos/protocols/proto/dxos/client/services';
4
- import { type ControlPipelineSnapshot, EchoMetadata, type SpaceMetadata, type IdentityRecord, type SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
4
+ import { type ControlPipelineSnapshot, type EchoMetadata, type SpaceMetadata, type IdentityRecord, type SpaceCache } from '@dxos/protocols/proto/dxos/echo/metadata';
5
5
  import { type Directory } from '@dxos/random-access-storage';
6
6
  import { type Timeframe } from '@dxos/timeframe';
7
7
  export interface AddSpaceOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAsC,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EACL,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AAWD,QAAA,MAAM,YAAY,yDAA4D,CAAC;AAG/E,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,mBAAmB,CAAiE;IAE5F,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,SAAgB,MAAM,sBAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;gBAO3C,SAAS,EAAE,SAAS;IAIhC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;YAEa,SAAS;IA+CjB,KAAK;IASX;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgDb,KAAK;YAcL,uBAAuB;YAavB,uBAAuB;IAM/B,KAAK;IAIX,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa;IAW7C,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAIzC,iBAAiB,CAAC,MAAM,EAAE,cAAc;IAQ9C,cAAc,IAAI,UAAU,EAAE;IAIxB,aAAa,CAAC,UAAU,EAAE,UAAU;IAUpC,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAMrC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAW9B,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKrE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAK/C,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IAQ1F,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAM1D,+BAA+B,CAAC,QAAQ,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;IAInF,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;CAK7F;AAID,eAAO,MAAM,oBAAoB,eAAgB,UAAU,KAAG,OAO7D,CAAC"}
1
+ {"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../../../src/metadata/metadata-store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAsC,MAAM,aAAa,CAAC;AAIxE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,SAAS,CAAC;CACxB;AAWD,QAAA,MAAM,YAAY,yDAA4D,CAAC;AAG/E,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,mBAAmB,CAAiE;IAE5F,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,SAAgB,MAAM,sBAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;gBAO3C,SAAS,EAAE,SAAS;IAIhC,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,EAAE,CAE5B;YAEa,SAAS;IA+CjB,KAAK;IASX;;OAEG;IAEG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgDb,KAAK;YAcL,uBAAuB;YAavB,uBAAuB;IAM/B,KAAK;IAIX,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa;IAW7C,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,iBAAiB,IAAI,cAAc,GAAG,SAAS;IAIzC,iBAAiB,CAAC,MAAM,EAAE,cAAc;IAQ9C,cAAc,IAAI,UAAU,EAAE;IAIxB,aAAa,CAAC,UAAU,EAAE,UAAU;IAUpC,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAMrC,QAAQ,CAAC,MAAM,EAAE,aAAa;IAW9B,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAKrE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IAMxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAK/C,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IAQ1F,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU;IAM1D,+BAA+B,CAAC,QAAQ,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;IAInF,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;CAK7F;AAID,eAAO,MAAM,oBAAoB,eAAgB,UAAU,KAAG,OAO7D,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DelegateInvitationCredential } from '@dxos/credentials';
1
+ import { type DelegateInvitationCredential, type MemberInfo } from '@dxos/credentials';
2
2
  import { type FeedStore } from '@dxos/feed-store';
3
3
  import { PublicKey } from '@dxos/keys';
4
4
  import { type NetworkManager } from '@dxos/network-manager';
@@ -31,6 +31,7 @@ export type ConstructSpaceParams = {
31
31
  onAuthorizedConnection: (session: Teleport) => void;
32
32
  onAuthFailure?: (session: Teleport) => void;
33
33
  onDelegatedInvitationStatusChange: (invitation: DelegateInvitationCredential, isActive: boolean) => Promise<void>;
34
+ onMemberRolesChanged: (member: MemberInfo[]) => Promise<void>;
34
35
  };
35
36
  /**
36
37
  * Manages a collection of ECHO (Data) Spaces.
@@ -47,6 +48,6 @@ export declare class SpaceManager {
47
48
  get spaces(): ComplexMap<PublicKey, Space>;
48
49
  open(): Promise<void>;
49
50
  close(): Promise<void>;
50
- constructSpace({ metadata, swarmIdentity, onAuthorizedConnection, onAuthFailure, onDelegatedInvitationStatusChange, memberKey, }: ConstructSpaceParams): Promise<Space>;
51
+ constructSpace({ metadata, swarmIdentity, onAuthorizedConnection, onAuthFailure, onDelegatedInvitationStatusChange, onMemberRolesChanged, memberKey, }: ConstructSpaceParams): Promise<Space>;
51
52
  }
52
53
  //# sourceMappingURL=space-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"space-manager.d.ts","sourceRoot":"","sources":["../../../../src/space/space-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,sBAAsB,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,iCAAiC,EAAE,CAAC,UAAU,EAAE,4BAA4B,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnH,CAAC;AAEF;;GAEG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,kBAAkB;IAUtG,IAAI,MAAM,iCAET;IAGK,IAAI;IAGJ,KAAK;IAIL,cAAc,CAAC,EACnB,QAAQ,EACR,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,iCAAiC,EACjC,SAAS,GACV,EAAE,oBAAoB;CAiCxB"}
1
+ {"version":3,"file":"space-manager.d.ts","sourceRoot":"","sources":["../../../../src/space/space-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,4BAA4B,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAE7B;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,sBAAsB,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,iCAAiC,EAAE,CAAC,UAAU,EAAE,4BAA4B,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClH,oBAAoB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF;;GAEG;AACH,qBACa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,kBAAkB;IAUtG,IAAI,MAAM,iCAET;IAGK,IAAI;IAGJ,KAAK;IAIL,cAAc,CAAC,EACnB,QAAQ,EACR,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,iCAAiC,EACjC,oBAAoB,EACpB,SAAS,GACV,EAAE,oBAAoB;CAkCxB"}
@@ -40,6 +40,7 @@ export declare class SpaceProtocol {
40
40
  private readonly _spaceKey;
41
41
  private readonly _feeds;
42
42
  private readonly _sessions;
43
+ private readonly _topology;
43
44
  private _connection?;
44
45
  get sessions(): ReadonlyMap<PublicKey, SpaceProtocolSession>;
45
46
  get feeds(): ReadonlySet<FeedWrapper<FeedMessage>>;
@@ -47,6 +48,7 @@ export declare class SpaceProtocol {
47
48
  constructor({ topic, swarmIdentity, networkManager, onSessionAuth, onAuthFailure, blobStore }: SpaceProtocolOptions);
48
49
  addFeed(feed: FeedWrapper<FeedMessage>): void;
49
50
  start(): Promise<void>;
51
+ updateTopology(): void;
50
52
  stop(): Promise<void>;
51
53
  private _createProtocolProvider;
52
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"space-protocol.d.ts","sourceRoot":"","sources":["../../../../src/space/space-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"space-protocol.d.ts","sourceRoot":"","sources":["../../../../src/space/space-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { Event } from '@dxos/async';
2
- import { Resource, type Context } from '@dxos/context';
3
- import { type FeedInfo, type DelegateInvitationCredential } from '@dxos/credentials';
2
+ import { type Context, Resource } from '@dxos/context';
3
+ import { type DelegateInvitationCredential, type FeedInfo, type MemberInfo } from '@dxos/credentials';
4
4
  import { type FeedOptions, type FeedWrapper } from '@dxos/feed-store';
5
5
  import { type PublicKey } from '@dxos/keys';
6
6
  import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
7
7
  import { type Credential } from '@dxos/protocols/proto/dxos/halo/credentials';
8
8
  import { type Timeframe } from '@dxos/timeframe';
9
- import { Callback, type AsyncCallback } from '@dxos/util';
9
+ import { type AsyncCallback, Callback } from '@dxos/util';
10
10
  import { type SpaceProtocol } from './space-protocol';
11
11
  import { type SnapshotManager } from '../db-host';
12
12
  import { type MetadataStore } from '../metadata';
@@ -22,6 +22,7 @@ export type SpaceParams = {
22
22
  memberKey: PublicKey;
23
23
  snapshotId?: string | undefined;
24
24
  onDelegatedInvitationStatusChange: (invitation: DelegateInvitationCredential, isActive: boolean) => Promise<void>;
25
+ onMemberRolesChanged: (member: MemberInfo[]) => Promise<void>;
25
26
  };
26
27
  export type CreatePipelineParams = {
27
28
  start: Timeframe;
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../../src/space/space.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-agent-builder.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-agent-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-agent-builder.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-agent-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/echo-pipeline",
3
- "version": "0.5.2",
3
+ "version": "0.5.3-main.056e7da",
4
4
  "description": "ECHO database.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -39,38 +39,38 @@
39
39
  "crc-32": "^1.2.2",
40
40
  "level": "^8.0.1",
41
41
  "level-transcoder": "^1.0.1",
42
- "@dxos/async": "0.5.2",
43
- "@dxos/automerge": "0.5.2",
44
- "@dxos/codec-protobuf": "0.5.2",
45
- "@dxos/context": "0.5.2",
46
- "@dxos/credentials": "0.5.2",
47
- "@dxos/crypto": "0.5.2",
48
- "@dxos/debug": "0.5.2",
49
- "@dxos/echo-protocol": "0.5.2",
50
- "@dxos/echo-schema": "0.5.2",
51
- "@dxos/hypercore": "0.5.2",
52
- "@dxos/invariant": "0.5.2",
53
- "@dxos/indexing": "0.5.2",
54
- "@dxos/feed-store": "0.5.2",
55
- "@dxos/keyring": "0.5.2",
56
- "@dxos/kv-store": "0.5.2",
57
- "@dxos/log": "0.5.2",
58
- "@dxos/messaging": "0.5.2",
59
- "@dxos/keys": "0.5.2",
60
- "@dxos/network-manager": "0.5.2",
61
- "@dxos/node-std": "0.5.2",
62
- "@dxos/protocols": "0.5.2",
63
- "@dxos/rpc": "0.5.2",
64
- "@dxos/random-access-storage": "0.5.2",
65
- "@dxos/teleport-extension-automerge-replicator": "0.5.2",
66
- "@dxos/teleport": "0.5.2",
67
- "@dxos/teleport-extension-gossip": "0.5.2",
68
- "@dxos/teleport-extension-replicator": "0.5.2",
69
- "@dxos/teleport-extension-object-sync": "0.5.2",
70
- "@dxos/tracing": "0.5.2",
71
- "@dxos/timeframe": "0.5.2",
72
- "@dxos/typings": "0.5.2",
73
- "@dxos/util": "0.5.2"
42
+ "@dxos/async": "0.5.3-main.056e7da",
43
+ "@dxos/codec-protobuf": "0.5.3-main.056e7da",
44
+ "@dxos/automerge": "0.5.3-main.056e7da",
45
+ "@dxos/credentials": "0.5.3-main.056e7da",
46
+ "@dxos/crypto": "0.5.3-main.056e7da",
47
+ "@dxos/context": "0.5.3-main.056e7da",
48
+ "@dxos/debug": "0.5.3-main.056e7da",
49
+ "@dxos/echo-protocol": "0.5.3-main.056e7da",
50
+ "@dxos/feed-store": "0.5.3-main.056e7da",
51
+ "@dxos/echo-schema": "0.5.3-main.056e7da",
52
+ "@dxos/hypercore": "0.5.3-main.056e7da",
53
+ "@dxos/indexing": "0.5.3-main.056e7da",
54
+ "@dxos/invariant": "0.5.3-main.056e7da",
55
+ "@dxos/keyring": "0.5.3-main.056e7da",
56
+ "@dxos/keys": "0.5.3-main.056e7da",
57
+ "@dxos/kv-store": "0.5.3-main.056e7da",
58
+ "@dxos/log": "0.5.3-main.056e7da",
59
+ "@dxos/messaging": "0.5.3-main.056e7da",
60
+ "@dxos/network-manager": "0.5.3-main.056e7da",
61
+ "@dxos/node-std": "0.5.3-main.056e7da",
62
+ "@dxos/random-access-storage": "0.5.3-main.056e7da",
63
+ "@dxos/protocols": "0.5.3-main.056e7da",
64
+ "@dxos/rpc": "0.5.3-main.056e7da",
65
+ "@dxos/teleport": "0.5.3-main.056e7da",
66
+ "@dxos/teleport-extension-automerge-replicator": "0.5.3-main.056e7da",
67
+ "@dxos/teleport-extension-gossip": "0.5.3-main.056e7da",
68
+ "@dxos/teleport-extension-object-sync": "0.5.3-main.056e7da",
69
+ "@dxos/teleport-extension-replicator": "0.5.3-main.056e7da",
70
+ "@dxos/timeframe": "0.5.3-main.056e7da",
71
+ "@dxos/tracing": "0.5.3-main.056e7da",
72
+ "@dxos/typings": "0.5.3-main.056e7da",
73
+ "@dxos/util": "0.5.3-main.056e7da"
74
74
  },
75
75
  "devDependencies": {
76
76
  "fast-check": "^3.15.1",
@@ -17,6 +17,7 @@ import {
17
17
  } from '@dxos/automerge/automerge-repo';
18
18
  import { IndexMetadataStore } from '@dxos/indexing';
19
19
  import { invariant } from '@dxos/invariant';
20
+ import { PublicKey } from '@dxos/keys';
20
21
  import { createTestLevel } from '@dxos/kv-store/testing';
21
22
  import { log } from '@dxos/log';
22
23
  import { TestBuilder as TeleportBuilder, TestPeer as TeleportPeer } from '@dxos/teleport/testing';
@@ -24,8 +25,9 @@ import { afterTest, describe, openAndClose, test } from '@dxos/test';
24
25
  import { arrayToBuffer, bufferToArray } from '@dxos/util';
25
26
 
26
27
  import { AutomergeHost } from './automerge-host';
28
+ import { EchoNetworkAdapter } from './echo-network-adapter';
27
29
  import { LevelDBStorageAdapter } from './leveldb-storage-adapter';
28
- import { MeshNetworkAdapter } from './mesh-network-adapter';
30
+ import { MeshEchoReplicator } from './mesh-echo-replicator';
29
31
 
30
32
  describe('AutomergeHost', () => {
31
33
  test('can create documents', async () => {
@@ -267,16 +269,24 @@ describe('AutomergeHost', () => {
267
269
  });
268
270
 
269
271
  test('integration test with teleport', async () => {
270
- const createAutomergeRepo = () => {
271
- const meshAdapter = new MeshNetworkAdapter();
272
+ const [spaceKey] = PublicKey.randomSequence();
273
+
274
+ const createAutomergeRepo = async () => {
275
+ const meshAdapter = new MeshEchoReplicator();
276
+ const echoAdapter = new EchoNetworkAdapter({
277
+ getContainingSpaceForDocument: async () => spaceKey,
278
+ });
272
279
  const repo = new Repo({
273
- network: [meshAdapter],
280
+ network: [echoAdapter],
274
281
  });
275
- meshAdapter.ready();
282
+ await echoAdapter.open();
283
+ await echoAdapter.whenConnected();
284
+ await echoAdapter.addReplicator(meshAdapter);
276
285
  return { repo, meshAdapter };
277
286
  };
278
- const peer1 = createAutomergeRepo();
279
- const peer2 = createAutomergeRepo();
287
+ const peer1 = await createAutomergeRepo();
288
+ const peer2 = await createAutomergeRepo();
289
+
280
290
  const handle = peer1.repo.create();
281
291
 
282
292
  const teleportBuilder = new TeleportBuilder();
@@ -294,8 +304,11 @@ describe('AutomergeHost', () => {
294
304
  handle.change((doc: any) => {
295
305
  doc.text = text;
296
306
  });
297
- const docOnPeer2 = peer2.repo.find(handle.url);
298
- await waitForExpect(async () => expect((await asyncTimeout(docOnPeer2.doc(), 1000)).text).toEqual(text), 1000);
307
+ await waitForExpect(async () => {
308
+ const docOnPeer2 = peer2.repo.find(handle.url);
309
+ const doc = await asyncTimeout(docOnPeer2.doc(), 1000);
310
+ expect(doc.text).toEqual(text);
311
+ }, 1000);
299
312
  }
300
313
 
301
314
  const offlineText = 'This has been written while the connection was off';
@@ -3,14 +3,14 @@
3
3
  //
4
4
 
5
5
  import { Event } from '@dxos/async';
6
- import { type Doc, next as automerge, getBackend, type Heads, getHeads } from '@dxos/automerge/automerge';
6
+ import { next as automerge, getBackend, getHeads, type Doc, type Heads } from '@dxos/automerge/automerge';
7
7
  import {
8
- type DocHandle,
9
8
  Repo,
9
+ type DocHandle,
10
+ type DocHandleChangePayload,
10
11
  type DocumentId,
11
12
  type PeerId,
12
13
  type StorageAdapterInterface,
13
- type DocHandleChangePayload,
14
14
  } from '@dxos/automerge/automerge-repo';
15
15
  import { type Stream } from '@dxos/codec-protobuf';
16
16
  import { Context, type Lifecycle } from '@dxos/context';
@@ -18,9 +18,9 @@ import { type SpaceDoc } from '@dxos/echo-protocol';
18
18
  import { type IndexMetadataStore } from '@dxos/indexing';
19
19
  import { invariant } from '@dxos/invariant';
20
20
  import { PublicKey } from '@dxos/keys';
21
- import { type SubLevelDB } from '@dxos/kv-store';
21
+ import { type SublevelDB } from '@dxos/kv-store';
22
22
  import { log } from '@dxos/log';
23
- import { idCodec } from '@dxos/protocols';
23
+ import { objectPointerCodec } from '@dxos/protocols';
24
24
  import {
25
25
  type FlushRequest,
26
26
  type HostInfo,
@@ -28,22 +28,20 @@ import {
28
28
  type SyncRepoResponse,
29
29
  } from '@dxos/protocols/proto/dxos/echo/service';
30
30
  import { type Directory } from '@dxos/random-access-storage';
31
- import { type AutomergeReplicator } from '@dxos/teleport-extension-automerge-replicator';
32
31
  import { trace } from '@dxos/tracing';
33
- import { ComplexMap, ComplexSet, defaultMap, mapValues } from '@dxos/util';
32
+ import { mapValues } from '@dxos/util';
34
33
 
35
34
  import { EchoNetworkAdapter } from './echo-network-adapter';
36
35
  import { type EchoReplicator } from './echo-replicator';
37
- import { type BeforeSaveParams, LevelDBStorageAdapter } from './leveldb-storage-adapter';
36
+ import { LevelDBStorageAdapter, type BeforeSaveParams } from './leveldb-storage-adapter';
38
37
  import { LocalHostNetworkAdapter } from './local-host-network-adapter';
39
- import { MeshNetworkAdapter } from './mesh-network-adapter';
40
38
  import { levelMigration } from './migrations';
41
39
 
42
40
  // TODO: Remove
43
41
  export type { DocumentId };
44
42
 
45
43
  export type AutomergeHostParams = {
46
- db: SubLevelDB;
44
+ db: SublevelDB;
47
45
  /**
48
46
  * For migration purposes.
49
47
  */
@@ -57,22 +55,18 @@ export class AutomergeHost {
57
55
  private readonly _indexMetadataStore: IndexMetadataStore;
58
56
  private readonly _ctx = new Context();
59
57
  private readonly _directory?: Directory;
60
- private readonly _db: SubLevelDB;
61
- private readonly _echoNetworkAdapter = new EchoNetworkAdapter();
58
+ private readonly _db: SublevelDB;
59
+ private readonly _echoNetworkAdapter = new EchoNetworkAdapter({
60
+ getContainingSpaceForDocument: this._getContainingSpaceForDocument.bind(this),
61
+ });
62
62
 
63
63
  private _repo!: Repo;
64
- private _meshNetwork!: MeshNetworkAdapter;
65
64
  private _clientNetwork!: LocalHostNetworkAdapter;
66
65
  private _storage!: StorageAdapterInterface & Lifecycle;
67
66
 
68
67
  @trace.info()
69
68
  private _peerId!: string;
70
69
 
71
- /**
72
- * spaceKey -> deviceKey[]
73
- */
74
- private readonly _authorizedDevices = new ComplexMap<PublicKey, ComplexSet<PublicKey>>(PublicKey.hash);
75
-
76
70
  public _requestedDocs = new Set<string>();
77
71
 
78
72
  constructor({ directory, db, indexMetadataStore }: AutomergeHostParams) {
@@ -94,72 +88,16 @@ export class AutomergeHost {
94
88
  await this._storage.open?.();
95
89
  this._peerId = `host-${PublicKey.random().toHex()}` as PeerId;
96
90
 
97
- this._meshNetwork = new MeshNetworkAdapter();
98
91
  this._clientNetwork = new LocalHostNetworkAdapter();
99
92
 
100
93
  this._repo = new Repo({
101
94
  peerId: this._peerId as PeerId,
102
- network: [this._clientNetwork, this._meshNetwork, this._echoNetworkAdapter],
95
+ network: [this._clientNetwork, this._echoNetworkAdapter],
103
96
  storage: this._storage,
104
97
 
105
- // TODO(dmaretskyi): Share based on HALO permissions and space affinity.
106
- // Hosts, running in the worker, don't share documents unless requested by other peers.
107
- sharePolicy: async (peerId /* device key */, documentId /* space key */) => {
108
- if (peerId.startsWith('client-')) {
109
- return false; // Only send docs to clients if they are requested.
110
- }
111
-
112
- if (!documentId) {
113
- return false;
114
- }
115
-
116
- const peerMetadata = this.repo.peerMetadataByPeerId[peerId];
117
- if ((peerMetadata as any)?.dxos_peerSource === 'EchoNetworkAdapter') {
118
- return this._echoNetworkAdapter.shouldAdvertize(peerId, { documentId });
119
- }
120
-
121
- const doc = this._repo.handles[documentId]?.docSync();
122
- if (!doc) {
123
- const isRequested = this._requestedDocs.has(`automerge:${documentId}`);
124
- log('doc share policy check', { peerId, documentId, isRequested });
125
- return isRequested;
126
- }
127
-
128
- try {
129
- const spaceKey = getSpaceKeyFromDoc(doc);
130
- if (!spaceKey) {
131
- log('space key not found for share policy check', { peerId, documentId });
132
- return false;
133
- }
134
-
135
- const authorizedDevices = this._authorizedDevices.get(PublicKey.from(spaceKey));
136
-
137
- // TODO(mykola): Hack, stop abusing `peerMetadata` field.
138
- const deviceKeyHex = (peerMetadata as any)?.dxos_deviceKey;
139
- if (!deviceKeyHex) {
140
- log('device key not found for share policy check', { peerId, documentId });
141
- return false;
142
- }
143
- const deviceKey = PublicKey.from(deviceKeyHex);
144
-
145
- const isAuthorized = authorizedDevices?.has(deviceKey) ?? false;
146
- log('share policy check', {
147
- localPeer: this._peerId,
148
- remotePeer: peerId,
149
- documentId,
150
- deviceKey,
151
- spaceKey,
152
- isAuthorized,
153
- });
154
- return isAuthorized;
155
- } catch (err) {
156
- log.catch(err);
157
- return false;
158
- }
159
- },
98
+ sharePolicy: this._sharePolicy.bind(this),
160
99
  });
161
100
  this._clientNetwork.ready();
162
- this._meshNetwork.ready();
163
101
  await this._echoNetworkAdapter.open();
164
102
 
165
103
  await this._clientNetwork.whenConnected();
@@ -185,6 +123,41 @@ export class AutomergeHost {
185
123
  await this._echoNetworkAdapter.removeReplicator(replicator);
186
124
  }
187
125
 
126
+ // TODO(dmaretskyi): Share based on HALO permissions and space affinity.
127
+ // Hosts, running in the worker, don't share documents unless requested by other peers.
128
+ // NOTE: If both peers return sharePolicy=false the replication will not happen
129
+ // https://github.com/automerge/automerge-repo/pull/292
130
+ private async _sharePolicy(
131
+ peerId: PeerId /* device key */,
132
+ documentId?: DocumentId /* space key */,
133
+ ): Promise<boolean> {
134
+ if (peerId.startsWith('client-')) {
135
+ return false; // Only send docs to clients if they are requested.
136
+ }
137
+
138
+ if (!documentId) {
139
+ return false;
140
+ }
141
+
142
+ // Workaround for https://github.com/automerge/automerge-repo/pull/292
143
+ // NOTE: This must override the per-connection policy.
144
+ const doc = this._repo.handles[documentId]?.docSync();
145
+ if (!doc) {
146
+ // TODO(dmaretskyi): Verify that this works as intended.
147
+ // TODO(dmaretskyi): Move to MESH replicator?
148
+ const isRequested = this._requestedDocs.has(`automerge:${documentId}`);
149
+ log('doc share policy check', { peerId, documentId, isRequested });
150
+ return isRequested;
151
+ }
152
+
153
+ const peerMetadata = this.repo.peerMetadataByPeerId[peerId];
154
+ if ((peerMetadata as any)?.dxos_peerSource === 'EchoNetworkAdapter') {
155
+ return this._echoNetworkAdapter.shouldAdvertize(peerId, { documentId });
156
+ }
157
+
158
+ return false;
159
+ }
160
+
188
161
  private async _beforeSave({ path, batch }: BeforeSaveParams) {
189
162
  const handle = this._repo.handles[path[0] as DocumentId];
190
163
  if (!handle) {
@@ -195,10 +168,14 @@ export class AutomergeHost {
195
168
  return;
196
169
  }
197
170
 
171
+ const spaceKey = getSpaceKeyFromDoc(doc) ?? undefined;
172
+
198
173
  const lastAvailableHash = getHeads(doc);
199
174
 
200
175
  const objectIds = Object.keys(doc.objects ?? {});
201
- const encodedIds = objectIds.map((objectId) => idCodec.encode({ documentId: handle.documentId, objectId }));
176
+ const encodedIds = objectIds.map((objectId) =>
177
+ objectPointerCodec.encode({ documentId: handle.documentId, objectId, spaceKey }),
178
+ );
202
179
  const idToLastHash = new Map(encodedIds.map((id) => [id, lastAvailableHash]));
203
180
  this._indexMetadataStore.markDirty(idToLastHash, batch);
204
181
  }
@@ -241,6 +218,20 @@ export class AutomergeHost {
241
218
  return this._repo.peers;
242
219
  }
243
220
 
221
+ private async _getContainingSpaceForDocument(documentId: string): Promise<PublicKey | null> {
222
+ const doc = this._repo.handles[documentId as any]?.docSync();
223
+ if (!doc) {
224
+ return null;
225
+ }
226
+
227
+ const spaceKeyHex = getSpaceKeyFromDoc(doc);
228
+ if (!spaceKeyHex) {
229
+ return null;
230
+ }
231
+
232
+ return PublicKey.from(spaceKeyHex);
233
+ }
234
+
244
235
  //
245
236
  // Methods for client-services.
246
237
  //
@@ -269,19 +260,6 @@ export class AutomergeHost {
269
260
  async getHostInfo(): Promise<HostInfo> {
270
261
  return this._clientNetwork.getHostInfo();
271
262
  }
272
-
273
- //
274
- // Mesh replication.
275
- //
276
-
277
- createExtension(): AutomergeReplicator {
278
- return this._meshNetwork.createExtension();
279
- }
280
-
281
- authorizeDevice(spaceKey: PublicKey, deviceKey: PublicKey) {
282
- log('authorizeDevice', { spaceKey, deviceKey });
283
- defaultMap(this._authorizedDevices, spaceKey, () => new ComplexSet(PublicKey.hash)).add(deviceKey);
284
- }
285
263
  }
286
264
 
287
265
  export const getSpaceKeyFromDoc = (doc: any): string | null => {
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { expect } from 'chai';
6
6
 
7
- import { change, clone, from, getBackend, getHeads } from '@dxos/automerge/automerge';
7
+ import { type Heads, change, clone, equals, from, getBackend, getHeads } from '@dxos/automerge/automerge';
8
8
  import { Repo } from '@dxos/automerge/automerge-repo';
9
9
  import { randomBytes } from '@dxos/crypto';
10
10
  import { createTestLevel } from '@dxos/kv-store/testing';
@@ -58,4 +58,13 @@ describe('AutomergeRepo', () => {
58
58
  expect(changes[0]).to.be.null;
59
59
  }
60
60
  });
61
+
62
+ test('heads equality', () => {
63
+ const a: Heads = getHeads(from({ foo: 'bar' }));
64
+ const b: Heads = getHeads(from({ foo: 'bar' }));
65
+ const c: Heads = [...a];
66
+
67
+ expect(equals(a, b)).to.be.false;
68
+ expect(equals(a, c)).to.be.true;
69
+ });
61
70
  });