@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.
- package/dist/lib/browser/index.mjs +41 -29
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +51 -39
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/automerge/automerge-host.d.ts +1 -0
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
- package/package.json +33 -33
- package/src/automerge/automerge-doc-loader.test.ts +3 -2
- package/src/automerge/automerge-host.ts +14 -0
- package/src/automerge/mesh-echo-replicator.ts +0 -5
|
@@ -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;
|
|
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;
|
|
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.
|
|
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.
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/context": "0.5.9-main.
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/credentials": "0.5.9-main.
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/echo-
|
|
50
|
-
"@dxos/echo-
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/invariant": "0.5.9-main.
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/kv-store": "0.5.9-main.
|
|
58
|
-
"@dxos/log": "0.5.9-main.
|
|
59
|
-
"@dxos/messaging": "0.5.9-main.
|
|
60
|
-
"@dxos/network-manager": "0.5.9-main.
|
|
61
|
-
"@dxos/node-std": "0.5.9-main.
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/
|
|
64
|
-
"@dxos/
|
|
65
|
-
"@dxos/
|
|
66
|
-
"@dxos/teleport-extension-gossip": "0.5.9-main.
|
|
67
|
-
"@dxos/teleport-extension-
|
|
68
|
-
"@dxos/teleport-extension-
|
|
69
|
-
"@dxos/
|
|
70
|
-
"@dxos/
|
|
71
|
-
"@dxos/tracing": "0.5.9-main.
|
|
72
|
-
"@dxos/typings": "0.5.9-main.
|
|
73
|
-
"@dxos/util": "0.5.9-main.
|
|
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, {
|
|
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
|
|