@dxos/echo-pipeline 0.5.9-main.a2de4fa → 0.5.9-main.af4882d

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.
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAGJ,KAAK,UAAU,EAGhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,UAAU,CAAC;IAEf,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,qBACa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEjC;IAEH,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAuC;IAGvD,OAAO,CAAC,OAAO,CAAU;gBAEb,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,mBAAmB;IAWrD,IAAI;IA0BJ,KAAK;IAOX,IAAI,IAAI,IAAI,IAAI,CAEf;IAEK,aAAa,CAAC,UAAU,EAAE,cAAc;IAIxC,gBAAgB,CAAC,UAAU,EAAE,cAAc;YAQnC,YAAY;YAoBZ,WAAW;IAsBzB;;OAEG;YACW,UAAU;IAKxB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;YAIT,8BAA8B;IAkBtC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAI5D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;CAGvC;AAED,eAAO,MAAM,kBAAkB,QAAS,GAAG,KAAG,MAAM,GAAG,IAQtD,CAAC"}
1
+ {"version":3,"file":"automerge-host.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge-host.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAGJ,KAAK,UAAU,EAGhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,UAAU,CAAC;IAEf,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,qBACa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEjC;IAEH,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAuC;IAGvD,OAAO,CAAC,OAAO,CAAU;IAElB,cAAc,cAAqB;gBAE9B,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,mBAAmB;IAWrD,IAAI;IA0BJ,KAAK;IAOX,IAAI,IAAI,IAAI,IAAI,CAEf;IAEK,aAAa,CAAC,UAAU,EAAE,cAAc;IAIxC,gBAAgB,CAAC,UAAU,EAAE,cAAc;YAQnC,YAAY;YA+BZ,WAAW;IAsBzB;;OAEG;YACW,UAAU;IAKxB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,eAAe;YAIT,8BAA8B;IAkBtC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAI5D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;CAGvC;AAED,eAAO,MAAM,kBAAkB,QAAS,GAAG,KAAG,MAAM,GAAG,IAQtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAGpF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAG3B,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+C;IAEnF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoE;IAEvG,OAAO,CAAC,QAAQ,CAAsC;IAEhD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU;IAUhB,eAAe,IAAI,mBAAmB;IAoEtC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAS1D"}
1
+ {"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAGpF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAG3B,MAAM,mBAAmB,CAAC;AAI3B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+C;IAEnF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoE;IAEvG,OAAO,CAAC,QAAQ,CAAsC;IAEhD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU;IAUhB,eAAe,IAAI,mBAAmB;IAoEtC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CAI1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/echo-pipeline",
3
- "version": "0.5.9-main.a2de4fa",
3
+ "version": "0.5.9-main.af4882d",
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.9-main.a2de4fa",
43
- "@dxos/automerge": "0.5.9-main.a2de4fa",
44
- "@dxos/context": "0.5.9-main.a2de4fa",
45
- "@dxos/codec-protobuf": "0.5.9-main.a2de4fa",
46
- "@dxos/credentials": "0.5.9-main.a2de4fa",
47
- "@dxos/crypto": "0.5.9-main.a2de4fa",
48
- "@dxos/debug": "0.5.9-main.a2de4fa",
49
- "@dxos/echo-protocol": "0.5.9-main.a2de4fa",
50
- "@dxos/echo-schema": "0.5.9-main.a2de4fa",
51
- "@dxos/hypercore": "0.5.9-main.a2de4fa",
52
- "@dxos/indexing": "0.5.9-main.a2de4fa",
53
- "@dxos/feed-store": "0.5.9-main.a2de4fa",
54
- "@dxos/invariant": "0.5.9-main.a2de4fa",
55
- "@dxos/keyring": "0.5.9-main.a2de4fa",
56
- "@dxos/keys": "0.5.9-main.a2de4fa",
57
- "@dxos/kv-store": "0.5.9-main.a2de4fa",
58
- "@dxos/log": "0.5.9-main.a2de4fa",
59
- "@dxos/messaging": "0.5.9-main.a2de4fa",
60
- "@dxos/network-manager": "0.5.9-main.a2de4fa",
61
- "@dxos/node-std": "0.5.9-main.a2de4fa",
62
- "@dxos/rpc": "0.5.9-main.a2de4fa",
63
- "@dxos/teleport": "0.5.9-main.a2de4fa",
64
- "@dxos/protocols": "0.5.9-main.a2de4fa",
65
- "@dxos/random-access-storage": "0.5.9-main.a2de4fa",
66
- "@dxos/teleport-extension-gossip": "0.5.9-main.a2de4fa",
67
- "@dxos/teleport-extension-automerge-replicator": "0.5.9-main.a2de4fa",
68
- "@dxos/teleport-extension-object-sync": "0.5.9-main.a2de4fa",
69
- "@dxos/timeframe": "0.5.9-main.a2de4fa",
70
- "@dxos/teleport-extension-replicator": "0.5.9-main.a2de4fa",
71
- "@dxos/tracing": "0.5.9-main.a2de4fa",
72
- "@dxos/typings": "0.5.9-main.a2de4fa",
73
- "@dxos/util": "0.5.9-main.a2de4fa"
42
+ "@dxos/async": "0.5.9-main.af4882d",
43
+ "@dxos/codec-protobuf": "0.5.9-main.af4882d",
44
+ "@dxos/context": "0.5.9-main.af4882d",
45
+ "@dxos/automerge": "0.5.9-main.af4882d",
46
+ "@dxos/credentials": "0.5.9-main.af4882d",
47
+ "@dxos/debug": "0.5.9-main.af4882d",
48
+ "@dxos/crypto": "0.5.9-main.af4882d",
49
+ "@dxos/echo-schema": "0.5.9-main.af4882d",
50
+ "@dxos/echo-protocol": "0.5.9-main.af4882d",
51
+ "@dxos/feed-store": "0.5.9-main.af4882d",
52
+ "@dxos/hypercore": "0.5.9-main.af4882d",
53
+ "@dxos/indexing": "0.5.9-main.af4882d",
54
+ "@dxos/invariant": "0.5.9-main.af4882d",
55
+ "@dxos/keys": "0.5.9-main.af4882d",
56
+ "@dxos/keyring": "0.5.9-main.af4882d",
57
+ "@dxos/kv-store": "0.5.9-main.af4882d",
58
+ "@dxos/log": "0.5.9-main.af4882d",
59
+ "@dxos/messaging": "0.5.9-main.af4882d",
60
+ "@dxos/network-manager": "0.5.9-main.af4882d",
61
+ "@dxos/node-std": "0.5.9-main.af4882d",
62
+ "@dxos/protocols": "0.5.9-main.af4882d",
63
+ "@dxos/random-access-storage": "0.5.9-main.af4882d",
64
+ "@dxos/rpc": "0.5.9-main.af4882d",
65
+ "@dxos/teleport": "0.5.9-main.af4882d",
66
+ "@dxos/teleport-extension-gossip": "0.5.9-main.af4882d",
67
+ "@dxos/teleport-extension-object-sync": "0.5.9-main.af4882d",
68
+ "@dxos/teleport-extension-automerge-replicator": "0.5.9-main.af4882d",
69
+ "@dxos/teleport-extension-replicator": "0.5.9-main.af4882d",
70
+ "@dxos/timeframe": "0.5.9-main.af4882d",
71
+ "@dxos/tracing": "0.5.9-main.af4882d",
72
+ "@dxos/typings": "0.5.9-main.af4882d",
73
+ "@dxos/util": "0.5.9-main.af4882d"
74
74
  },
75
75
  "devDependencies": {
76
76
  "fast-check": "^3.19.0",
@@ -22,7 +22,6 @@ import { createIdFromSpaceKey } from '../space';
22
22
  const ctx = new Context();
23
23
  const SPACE_KEY = PublicKey.random();
24
24
  const randomId = () => generateEchoId();
25
-
26
25
  describe('AutomergeDocumentLoader', () => {
27
26
  test('space access is set on root doc handle and it is accessible', async () => {
28
27
  const { loader, spaceRootDocHandle } = await setupTest();
@@ -78,7 +77,9 @@ describe('AutomergeDocumentLoader', () => {
78
77
  const repo = new Repo({ network: [] });
79
78
  const loader = new AutomergeDocumentLoaderImpl(spaceId, repo, SPACE_KEY);
80
79
  const spaceRootDocHandle = repo.create<SpaceDoc>();
81
- await loader.loadSpaceRootDocHandle(ctx, { rootUrl: spaceRootDocHandle.url });
80
+ await loader.loadSpaceRootDocHandle(ctx, {
81
+ rootUrl: spaceRootDocHandle.url,
82
+ });
82
83
  return { loader, spaceRootDocHandle, repo };
83
84
  };
84
85
 
@@ -19,6 +19,7 @@ import { type IndexMetadataStore } from '@dxos/indexing';
19
19
  import { invariant } from '@dxos/invariant';
20
20
  import { PublicKey } from '@dxos/keys';
21
21
  import { type SublevelDB } from '@dxos/kv-store';
22
+ import { log } from '@dxos/log';
22
23
  import { objectPointerCodec } from '@dxos/protocols';
23
24
  import {
24
25
  type FlushRequest,
@@ -58,6 +59,8 @@ export class AutomergeHost {
58
59
  @trace.info()
59
60
  private _peerId!: string;
60
61
 
62
+ public _requestedDocs = new Set<string>();
63
+
61
64
  constructor({ db, indexMetadataStore }: AutomergeHostParams) {
62
65
  this._storage = new LevelDBStorageAdapter({
63
66
  db,
@@ -130,6 +133,17 @@ export class AutomergeHost {
130
133
  return false;
131
134
  }
132
135
 
136
+ // Workaround for https://github.com/automerge/automerge-repo/pull/292
137
+ // NOTE: This must override the per-connection policy.
138
+ const doc = this._repo.handles[documentId]?.docSync();
139
+ if (!doc) {
140
+ // TODO(dmaretskyi): Verify that this works as intended.
141
+ // TODO(dmaretskyi): Move to MESH replicator?
142
+ const isRequested = this._requestedDocs.has(`automerge:${documentId}`);
143
+ log('doc share policy check', { peerId, documentId, isRequested });
144
+ return isRequested;
145
+ }
146
+
133
147
  const peerMetadata = this.repo.peerMetadataByPeerId[peerId];
134
148
  if ((peerMetadata as any)?.dxos_peerSource === 'EchoNetworkAdapter') {
135
149
  return this._echoNetworkAdapter.shouldAdvertize(peerId, { documentId });
@@ -121,11 +121,6 @@ export class MeshEchoReplicator implements EchoReplicator {
121
121
  authorizeDevice(spaceKey: PublicKey, deviceKey: PublicKey) {
122
122
  log('authorizeDevice', { spaceKey, deviceKey });
123
123
  defaultMap(this._authorizedDevices, spaceKey, () => new ComplexSet(PublicKey.hash)).add(deviceKey);
124
- for (const connection of this._connections) {
125
- if (connection.remoteDeviceKey && connection.remoteDeviceKey.equals(deviceKey)) {
126
- this._context?.onConnectionAuthScopeChanged(connection);
127
- }
128
- }
129
124
  }
130
125
  }
131
126