@dxos/echo-pipeline 0.6.12 → 0.6.13-main.548ca8d
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/chunk-PESZVYAN.mjs +2050 -0
- package/dist/lib/browser/chunk-PESZVYAN.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +3463 -17
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +3 -4
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node/{chunk-7HHYCGUR.cjs → chunk-6EZVIJNE.cjs} +89 -47
- package/dist/lib/node/chunk-6EZVIJNE.cjs.map +7 -0
- package/dist/lib/node/index.cjs +3440 -35
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +11 -12
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/{browser/chunk-UKXIJW43.mjs → node-esm/chunk-4LW7MDPZ.mjs} +76 -36
- package/dist/lib/node-esm/chunk-4LW7MDPZ.mjs.map +7 -0
- package/dist/lib/{browser/chunk-MPWFDDQK.mjs → node-esm/index.mjs} +1702 -335
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/testing/index.mjs +551 -0
- package/dist/lib/node-esm/testing/index.mjs.map +7 -0
- package/dist/types/src/automerge/automerge-host.d.ts +24 -1
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/automerge/collection-synchronizer.d.ts +2 -0
- package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
- package/dist/types/src/automerge/echo-replicator.d.ts +3 -3
- package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +3 -3
- package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
- package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
- package/dist/types/src/automerge/space-collection.d.ts +3 -2
- package/dist/types/src/automerge/space-collection.d.ts.map +1 -1
- package/dist/types/src/db-host/automerge-metrics.d.ts +11 -0
- package/dist/types/src/db-host/automerge-metrics.d.ts.map +1 -0
- package/dist/types/src/db-host/data-service.d.ts +3 -2
- package/dist/types/src/db-host/data-service.d.ts.map +1 -1
- package/dist/types/src/db-host/database-root.d.ts +20 -0
- package/dist/types/src/db-host/database-root.d.ts.map +1 -0
- package/dist/types/src/db-host/documents-iterator.d.ts +7 -0
- package/dist/types/src/db-host/documents-iterator.d.ts.map +1 -0
- package/dist/types/src/db-host/echo-host.d.ts +73 -0
- package/dist/types/src/db-host/echo-host.d.ts.map +1 -0
- package/dist/types/src/db-host/index.d.ts +5 -0
- package/dist/types/src/db-host/index.d.ts.map +1 -1
- package/dist/types/src/db-host/migration.d.ts +8 -0
- package/dist/types/src/db-host/migration.d.ts.map +1 -0
- package/dist/types/src/db-host/query-service.d.ts +25 -0
- package/dist/types/src/db-host/query-service.d.ts.map +1 -0
- package/dist/types/src/db-host/query-state.d.ts +41 -0
- package/dist/types/src/db-host/query-state.d.ts.map +1 -0
- package/dist/types/src/db-host/space-state-manager.d.ts +23 -0
- package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -0
- package/dist/types/src/edge/echo-edge-replicator.d.ts +23 -0
- package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -0
- package/dist/types/src/edge/echo-edge-replicator.test.d.ts +2 -0
- package/dist/types/src/edge/echo-edge-replicator.test.d.ts.map +1 -0
- package/dist/types/src/edge/index.d.ts +2 -0
- package/dist/types/src/edge/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/metadata/metadata-store.d.ts +4 -1
- package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
- package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
- package/dist/types/src/testing/test-replicator.d.ts +4 -4
- package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
- package/package.json +40 -50
- package/src/automerge/automerge-host.test.ts +8 -9
- package/src/automerge/automerge-host.ts +46 -7
- package/src/automerge/automerge-repo.test.ts +18 -16
- package/src/automerge/collection-synchronizer.test.ts +10 -5
- package/src/automerge/collection-synchronizer.ts +17 -6
- package/src/automerge/echo-data-monitor.test.ts +1 -3
- package/src/automerge/echo-network-adapter.test.ts +4 -3
- package/src/automerge/echo-network-adapter.ts +5 -4
- package/src/automerge/echo-replicator.ts +3 -3
- package/src/automerge/mesh-echo-replicator-connection.ts +10 -9
- package/src/automerge/mesh-echo-replicator.ts +2 -1
- package/src/automerge/space-collection.ts +3 -2
- package/src/automerge/storage-adapter.test.ts +2 -3
- package/src/db-host/automerge-metrics.ts +38 -0
- package/src/db-host/data-service.ts +29 -14
- package/src/db-host/database-root.ts +86 -0
- package/src/db-host/documents-iterator.ts +73 -0
- package/src/db-host/documents-synchronizer.test.ts +2 -2
- package/src/db-host/echo-host.ts +257 -0
- package/src/db-host/index.ts +6 -1
- package/src/db-host/migration.ts +57 -0
- package/src/db-host/query-service.ts +208 -0
- package/src/db-host/query-state.ts +200 -0
- package/src/db-host/space-state-manager.ts +90 -0
- package/src/edge/echo-edge-replicator.test.ts +96 -0
- package/src/edge/echo-edge-replicator.ts +337 -0
- package/src/edge/index.ts +5 -0
- package/src/index.ts +1 -0
- package/src/metadata/metadata-store.ts +20 -0
- package/src/pipeline/pipeline-stress.test.ts +44 -47
- package/src/pipeline/pipeline.test.ts +3 -4
- package/src/space/control-pipeline.test.ts +2 -3
- package/src/space/control-pipeline.ts +10 -1
- package/src/space/replication.browser.test.ts +2 -8
- package/src/space/space-manager.browser.test.ts +6 -5
- package/src/space/space-protocol.browser.test.ts +29 -34
- package/src/space/space-protocol.test.ts +29 -27
- package/src/space/space.test.ts +28 -11
- package/src/testing/test-agent-builder.ts +2 -2
- package/src/testing/test-replicator.ts +3 -3
- package/dist/lib/browser/chunk-MPWFDDQK.mjs.map +0 -7
- package/dist/lib/browser/chunk-UKXIJW43.mjs.map +0 -7
- package/dist/lib/browser/chunk-XPCF2V5U.mjs +0 -31
- package/dist/lib/browser/chunk-XPCF2V5U.mjs.map +0 -7
- package/dist/lib/browser/light.mjs +0 -32
- package/dist/lib/browser/light.mjs.map +0 -7
- package/dist/lib/node/chunk-5DH4KR2S.cjs +0 -2148
- package/dist/lib/node/chunk-5DH4KR2S.cjs.map +0 -7
- package/dist/lib/node/chunk-7HHYCGUR.cjs.map +0 -7
- package/dist/lib/node/chunk-DZVH7HDD.cjs +0 -43
- package/dist/lib/node/chunk-DZVH7HDD.cjs.map +0 -7
- package/dist/lib/node/light.cjs +0 -52
- package/dist/lib/node/light.cjs.map +0 -7
- package/dist/types/src/light.d.ts +0 -4
- package/dist/types/src/light.d.ts.map +0 -1
- package/src/light.ts +0 -7
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_6EZVIJNE_exports = {};
|
|
30
|
+
__export(chunk_6EZVIJNE_exports, {
|
|
31
31
|
AuthExtension: () => AuthExtension,
|
|
32
32
|
AuthStatus: () => AuthStatus,
|
|
33
33
|
CredentialRetrieverExtension: () => CredentialRetrieverExtension,
|
|
@@ -42,6 +42,7 @@ __export(chunk_7HHYCGUR_exports, {
|
|
|
42
42
|
SpaceProtocolSession: () => SpaceProtocolSession,
|
|
43
43
|
TimeframeClock: () => TimeframeClock,
|
|
44
44
|
codec: () => codec,
|
|
45
|
+
createIdFromSpaceKey: () => createIdFromSpaceKey,
|
|
45
46
|
createMappedFeedWriter: () => createMappedFeedWriter,
|
|
46
47
|
hasInvitationExpired: () => hasInvitationExpired,
|
|
47
48
|
mapFeedIndexesToTimeframe: () => mapFeedIndexesToTimeframe,
|
|
@@ -49,21 +50,23 @@ __export(chunk_7HHYCGUR_exports, {
|
|
|
49
50
|
startAfter: () => startAfter,
|
|
50
51
|
valueEncoding: () => valueEncoding
|
|
51
52
|
});
|
|
52
|
-
module.exports = __toCommonJS(
|
|
53
|
-
var import_chunk_DZVH7HDD = require("./chunk-DZVH7HDD.cjs");
|
|
53
|
+
module.exports = __toCommonJS(chunk_6EZVIJNE_exports);
|
|
54
54
|
var import_hypercore = require("@dxos/hypercore");
|
|
55
55
|
var import_proto = require("@dxos/protocols/proto");
|
|
56
56
|
var import_invariant = require("@dxos/invariant");
|
|
57
|
+
var import_crypto = require("@dxos/crypto");
|
|
58
|
+
var import_keys = require("@dxos/keys");
|
|
59
|
+
var import_util = require("@dxos/util");
|
|
57
60
|
var import_crc_32 = __toESM(require("crc-32"));
|
|
58
61
|
var import_async = require("@dxos/async");
|
|
59
62
|
var import_context = require("@dxos/context");
|
|
60
63
|
var import_invariant2 = require("@dxos/invariant");
|
|
61
|
-
var
|
|
64
|
+
var import_keys2 = require("@dxos/keys");
|
|
62
65
|
var import_log = require("@dxos/log");
|
|
63
66
|
var import_protocols = require("@dxos/protocols");
|
|
64
67
|
var import_proto2 = require("@dxos/protocols/proto");
|
|
65
68
|
var import_services = require("@dxos/protocols/proto/dxos/client/services");
|
|
66
|
-
var
|
|
69
|
+
var import_util2 = require("@dxos/util");
|
|
67
70
|
var import_async2 = require("@dxos/async");
|
|
68
71
|
var import_debug = require("@dxos/debug");
|
|
69
72
|
var import_log2 = require("@dxos/log");
|
|
@@ -73,15 +76,15 @@ var import_context2 = require("@dxos/context");
|
|
|
73
76
|
var import_debug2 = require("@dxos/debug");
|
|
74
77
|
var import_feed_store = require("@dxos/feed-store");
|
|
75
78
|
var import_invariant3 = require("@dxos/invariant");
|
|
76
|
-
var
|
|
79
|
+
var import_keys3 = require("@dxos/keys");
|
|
77
80
|
var import_log3 = require("@dxos/log");
|
|
78
81
|
var import_timeframe2 = require("@dxos/timeframe");
|
|
79
|
-
var
|
|
82
|
+
var import_util3 = require("@dxos/util");
|
|
80
83
|
var import_invariant4 = require("@dxos/invariant");
|
|
81
84
|
var import_log4 = require("@dxos/log");
|
|
82
85
|
var import_async4 = require("@dxos/async");
|
|
83
86
|
var import_context3 = require("@dxos/context");
|
|
84
|
-
var
|
|
87
|
+
var import_crypto2 = require("@dxos/crypto");
|
|
85
88
|
var import_invariant5 = require("@dxos/invariant");
|
|
86
89
|
var import_log5 = require("@dxos/log");
|
|
87
90
|
var import_proto3 = require("@dxos/protocols/proto");
|
|
@@ -92,36 +95,36 @@ var import_invariant6 = require("@dxos/invariant");
|
|
|
92
95
|
var import_log6 = require("@dxos/log");
|
|
93
96
|
var import_credentials = require("@dxos/protocols/proto/dxos/halo/credentials");
|
|
94
97
|
var import_tracing = require("@dxos/tracing");
|
|
95
|
-
var
|
|
98
|
+
var import_util4 = require("@dxos/util");
|
|
96
99
|
var import_async6 = require("@dxos/async");
|
|
97
100
|
var import_context5 = require("@dxos/context");
|
|
98
101
|
var import_credentials2 = require("@dxos/credentials");
|
|
99
|
-
var
|
|
102
|
+
var import_keys4 = require("@dxos/keys");
|
|
100
103
|
var import_log7 = require("@dxos/log");
|
|
101
104
|
var import_credentials3 = require("@dxos/protocols/proto/dxos/halo/credentials");
|
|
102
105
|
var import_timeframe3 = require("@dxos/timeframe");
|
|
103
106
|
var import_tracing2 = require("@dxos/tracing");
|
|
104
|
-
var
|
|
107
|
+
var import_util5 = require("@dxos/util");
|
|
105
108
|
var import_async7 = require("@dxos/async");
|
|
106
109
|
var import_context6 = require("@dxos/context");
|
|
107
110
|
var import_protocols2 = require("@dxos/protocols");
|
|
108
111
|
var import_proto4 = require("@dxos/protocols/proto");
|
|
109
112
|
var import_teleport2 = require("@dxos/teleport");
|
|
110
|
-
var
|
|
111
|
-
var
|
|
113
|
+
var import_crypto3 = require("@dxos/crypto");
|
|
114
|
+
var import_keys5 = require("@dxos/keys");
|
|
112
115
|
var import_log8 = require("@dxos/log");
|
|
113
116
|
var import_network_manager = require("@dxos/network-manager");
|
|
114
117
|
var import_teleport3 = require("@dxos/teleport");
|
|
115
118
|
var import_teleport_extension_object_sync = require("@dxos/teleport-extension-object-sync");
|
|
116
119
|
var import_teleport_extension_replicator = require("@dxos/teleport-extension-replicator");
|
|
117
120
|
var import_tracing3 = require("@dxos/tracing");
|
|
118
|
-
var
|
|
121
|
+
var import_util6 = require("@dxos/util");
|
|
119
122
|
var import_async8 = require("@dxos/async");
|
|
120
123
|
var import_debug3 = require("@dxos/debug");
|
|
121
|
-
var
|
|
124
|
+
var import_keys6 = require("@dxos/keys");
|
|
122
125
|
var import_log9 = require("@dxos/log");
|
|
123
126
|
var import_protocols3 = require("@dxos/protocols");
|
|
124
|
-
var
|
|
127
|
+
var import_util7 = require("@dxos/util");
|
|
125
128
|
var codec = import_proto.schema.getCodecForType("dxos.echo.feed.FeedMessage");
|
|
126
129
|
var valueEncoding = (0, import_hypercore.createCodecEncoding)(codec);
|
|
127
130
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/common/feeds.ts";
|
|
@@ -148,6 +151,18 @@ var createMappedFeedWriter = (mapper, writer) => {
|
|
|
148
151
|
write: async (data, options) => await writer.write(await mapper(data), options)
|
|
149
152
|
};
|
|
150
153
|
};
|
|
154
|
+
var SPACE_IDS_CACHE = new import_util.ComplexMap(import_keys.PublicKey.hash);
|
|
155
|
+
var createIdFromSpaceKey = async (spaceKey) => {
|
|
156
|
+
const cachedValue = SPACE_IDS_CACHE.get(spaceKey);
|
|
157
|
+
if (cachedValue !== void 0) {
|
|
158
|
+
return cachedValue;
|
|
159
|
+
}
|
|
160
|
+
const digest = await import_crypto.subtleCrypto.digest("SHA-256", spaceKey.asUint8Array());
|
|
161
|
+
const bytes = new Uint8Array(digest).slice(0, import_keys.SpaceId.byteLength);
|
|
162
|
+
const spaceId = import_keys.SpaceId.encode(bytes);
|
|
163
|
+
SPACE_IDS_CACHE.set(spaceKey, spaceId);
|
|
164
|
+
return spaceId;
|
|
165
|
+
};
|
|
151
166
|
function _ts_decorate(decorators, target, key, desc) {
|
|
152
167
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
153
168
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -168,12 +183,12 @@ var LargeSpaceMetadata = import_proto2.schema.getCodecForType("dxos.echo.metadat
|
|
|
168
183
|
var MetadataStore = class {
|
|
169
184
|
constructor(directory) {
|
|
170
185
|
this._metadata = emptyEchoMetadata();
|
|
171
|
-
this._spaceLargeMetadata = new
|
|
186
|
+
this._spaceLargeMetadata = new import_util2.ComplexMap(import_keys2.PublicKey.hash);
|
|
172
187
|
this._metadataFile = void 0;
|
|
173
188
|
this.update = new import_async.Event();
|
|
174
189
|
this._invitationCleanupCtx = new import_context.Context(void 0, {
|
|
175
190
|
F: __dxlog_file2,
|
|
176
|
-
L:
|
|
191
|
+
L: 55
|
|
177
192
|
});
|
|
178
193
|
this._directory = directory;
|
|
179
194
|
}
|
|
@@ -204,7 +219,7 @@ var MetadataStore = class {
|
|
|
204
219
|
name: file.filename
|
|
205
220
|
}, {
|
|
206
221
|
F: __dxlog_file2,
|
|
207
|
-
L:
|
|
222
|
+
L: 91,
|
|
208
223
|
S: this,
|
|
209
224
|
C: (f, a) => f(...a)
|
|
210
225
|
});
|
|
@@ -228,7 +243,7 @@ var MetadataStore = class {
|
|
|
228
243
|
* @internal
|
|
229
244
|
*/
|
|
230
245
|
async _writeFile(file, codec2, data) {
|
|
231
|
-
const encoded = (0,
|
|
246
|
+
const encoded = (0, import_util2.arrayToBuffer)(codec2.encode(data));
|
|
232
247
|
const checksum = import_crc_32.default.buf(encoded);
|
|
233
248
|
const result = Buffer.alloc(8 + encoded.length);
|
|
234
249
|
result.writeInt32LE(encoded.length, 0);
|
|
@@ -240,7 +255,7 @@ var MetadataStore = class {
|
|
|
240
255
|
checksum
|
|
241
256
|
}, {
|
|
242
257
|
F: __dxlog_file2,
|
|
243
|
-
L:
|
|
258
|
+
L: 126,
|
|
244
259
|
S: this,
|
|
245
260
|
C: (f, a) => f(...a)
|
|
246
261
|
});
|
|
@@ -273,16 +288,16 @@ var MetadataStore = class {
|
|
|
273
288
|
err
|
|
274
289
|
}, {
|
|
275
290
|
F: __dxlog_file2,
|
|
276
|
-
L:
|
|
291
|
+
L: 158,
|
|
277
292
|
S: this,
|
|
278
293
|
C: (f, a) => f(...a)
|
|
279
294
|
});
|
|
280
295
|
this._metadata = emptyEchoMetadata();
|
|
281
296
|
}
|
|
282
|
-
await (0,
|
|
297
|
+
await (0, import_util2.forEachAsync)([
|
|
283
298
|
this._metadata.identity?.haloSpace.key,
|
|
284
299
|
...this._metadata.spaces?.map((space) => space.key) ?? []
|
|
285
|
-
].filter(
|
|
300
|
+
].filter(import_util2.isNotNullOrUndefined), async (key) => {
|
|
286
301
|
try {
|
|
287
302
|
await this._loadSpaceLargeMetadata(key);
|
|
288
303
|
} catch (err) {
|
|
@@ -290,7 +305,7 @@ var MetadataStore = class {
|
|
|
290
305
|
err
|
|
291
306
|
}, {
|
|
292
307
|
F: __dxlog_file2,
|
|
293
|
-
L:
|
|
308
|
+
L: 170,
|
|
294
309
|
S: this,
|
|
295
310
|
C: (f, a) => f(...a)
|
|
296
311
|
});
|
|
@@ -327,7 +342,7 @@ var MetadataStore = class {
|
|
|
327
342
|
err
|
|
328
343
|
}, {
|
|
329
344
|
F: __dxlog_file2,
|
|
330
|
-
L:
|
|
345
|
+
L: 212,
|
|
331
346
|
S: this,
|
|
332
347
|
C: (f, a) => f(...a)
|
|
333
348
|
});
|
|
@@ -348,7 +363,7 @@ var MetadataStore = class {
|
|
|
348
363
|
const space = this.spaces.find((space2) => space2.key === spaceKey);
|
|
349
364
|
(0, import_invariant2.invariant)(space, "Space not found", {
|
|
350
365
|
F: __dxlog_file2,
|
|
351
|
-
L:
|
|
366
|
+
L: 234,
|
|
352
367
|
S: this,
|
|
353
368
|
A: [
|
|
354
369
|
"space",
|
|
@@ -357,6 +372,12 @@ var MetadataStore = class {
|
|
|
357
372
|
});
|
|
358
373
|
return space;
|
|
359
374
|
}
|
|
375
|
+
hasSpace(spaceKey) {
|
|
376
|
+
if (this._metadata.identity?.haloSpace.key.equals(spaceKey)) {
|
|
377
|
+
return true;
|
|
378
|
+
}
|
|
379
|
+
return !!this.spaces.find((space) => space.key === spaceKey);
|
|
380
|
+
}
|
|
360
381
|
_getLargeSpaceMetadata(key) {
|
|
361
382
|
let entry = this._spaceLargeMetadata.get(key);
|
|
362
383
|
if (entry) {
|
|
@@ -372,7 +393,7 @@ var MetadataStore = class {
|
|
|
372
393
|
async clear() {
|
|
373
394
|
(0, import_log.log)("clearing all metadata", void 0, {
|
|
374
395
|
F: __dxlog_file2,
|
|
375
|
-
L:
|
|
396
|
+
L: 262,
|
|
376
397
|
S: this,
|
|
377
398
|
C: (f, a) => f(...a)
|
|
378
399
|
});
|
|
@@ -385,7 +406,7 @@ var MetadataStore = class {
|
|
|
385
406
|
async setIdentityRecord(record) {
|
|
386
407
|
(0, import_invariant2.invariant)(!this._metadata.identity, "Cannot overwrite existing identity in metadata", {
|
|
387
408
|
F: __dxlog_file2,
|
|
388
|
-
L:
|
|
409
|
+
L: 272,
|
|
389
410
|
S: this,
|
|
390
411
|
A: [
|
|
391
412
|
"!this._metadata.identity",
|
|
@@ -415,7 +436,7 @@ var MetadataStore = class {
|
|
|
415
436
|
async addSpace(record) {
|
|
416
437
|
(0, import_invariant2.invariant)(!(this._metadata.spaces ?? []).find((space) => space.key === record.key), "Cannot overwrite existing space in metadata", {
|
|
417
438
|
F: __dxlog_file2,
|
|
418
|
-
L:
|
|
439
|
+
L: 300,
|
|
419
440
|
S: this,
|
|
420
441
|
A: [
|
|
421
442
|
"!(this._metadata.spaces ?? []).find((space) => space.key === record.key)",
|
|
@@ -459,6 +480,14 @@ var MetadataStore = class {
|
|
|
459
480
|
await this._saveSpaceLargeMetadata(spaceKey);
|
|
460
481
|
await this.flush();
|
|
461
482
|
}
|
|
483
|
+
getSpaceEdgeReplicationSetting(spaceKey) {
|
|
484
|
+
return this.hasSpace(spaceKey) ? this._getSpace(spaceKey).edgeReplication : void 0;
|
|
485
|
+
}
|
|
486
|
+
async setSpaceEdgeReplicationSetting(spaceKey, setting) {
|
|
487
|
+
this._getSpace(spaceKey).edgeReplication = setting;
|
|
488
|
+
await this._save();
|
|
489
|
+
await this.flush();
|
|
490
|
+
}
|
|
462
491
|
};
|
|
463
492
|
_ts_decorate([
|
|
464
493
|
import_async.synchronized
|
|
@@ -707,11 +736,11 @@ var PipelineState = class {
|
|
|
707
736
|
var Pipeline = class {
|
|
708
737
|
constructor() {
|
|
709
738
|
this._timeframeClock = new TimeframeClock(new import_timeframe2.Timeframe());
|
|
710
|
-
this._feeds = new
|
|
739
|
+
this._feeds = new import_util3.ComplexMap(import_keys3.PublicKey.hash);
|
|
711
740
|
this._state = new PipelineState(this._feeds, this._timeframeClock);
|
|
712
741
|
this._processingTrigger = new import_async3.Trigger().wake();
|
|
713
742
|
this._pauseTrigger = new import_async3.Trigger().wake();
|
|
714
|
-
this._downloads = new
|
|
743
|
+
this._downloads = new import_util3.ComplexMap((value) => import_keys3.PublicKey.hash(value.key));
|
|
715
744
|
this._isStopping = false;
|
|
716
745
|
this._isStarted = false;
|
|
717
746
|
this._isBeingConsumed = false;
|
|
@@ -927,7 +956,7 @@ var Pipeline = class {
|
|
|
927
956
|
if (!done) {
|
|
928
957
|
const block = value ?? (0, import_debug2.failUndefined)();
|
|
929
958
|
this._processingTrigger.reset();
|
|
930
|
-
this._timeframeClock.updatePendingTimeframe(
|
|
959
|
+
this._timeframeClock.updatePendingTimeframe(import_keys3.PublicKey.from(block.feedKey), block.seq);
|
|
931
960
|
yield block;
|
|
932
961
|
this._processingTrigger.wake();
|
|
933
962
|
this._timeframeClock.updateTimeframe();
|
|
@@ -1060,7 +1089,7 @@ var AuthExtension = class extends import_teleport.RpcExtension {
|
|
|
1060
1089
|
await super.onOpen(context);
|
|
1061
1090
|
(0, import_async4.scheduleTask)(this._ctx, async () => {
|
|
1062
1091
|
try {
|
|
1063
|
-
const challenge = (0,
|
|
1092
|
+
const challenge = (0, import_crypto2.randomBytes)(32);
|
|
1064
1093
|
const { credential } = await this.rpc.AuthService.authenticate({
|
|
1065
1094
|
challenge
|
|
1066
1095
|
});
|
|
@@ -1122,7 +1151,7 @@ var ControlPipeline = class {
|
|
|
1122
1151
|
L: 47
|
|
1123
1152
|
});
|
|
1124
1153
|
this._lastTimeframeSaveTime = Date.now();
|
|
1125
|
-
this.onFeedAdmitted = new
|
|
1154
|
+
this.onFeedAdmitted = new import_util5.Callback();
|
|
1126
1155
|
this._usage = new import_tracing2.TimeUsageCounter();
|
|
1127
1156
|
this._mutations = new import_tracing2.TimeSeriesCounter();
|
|
1128
1157
|
this._snapshotTask = new import_async6.DeferredTask(this._ctx, async () => {
|
|
@@ -1243,7 +1272,7 @@ var ControlPipeline = class {
|
|
|
1243
1272
|
await this._pipeline.unpause();
|
|
1244
1273
|
(0, import_log7.log)("save snapshot", {
|
|
1245
1274
|
key: this._spaceKey,
|
|
1246
|
-
snapshot
|
|
1275
|
+
snapshot: getSnapshotLoggerContext(snapshot)
|
|
1247
1276
|
}, {
|
|
1248
1277
|
F: __dxlog_file7,
|
|
1249
1278
|
L: 163,
|
|
@@ -1280,9 +1309,9 @@ var ControlPipeline = class {
|
|
|
1280
1309
|
C: (f, a) => f(...a)
|
|
1281
1310
|
});
|
|
1282
1311
|
if (msg.data.payload.credential) {
|
|
1283
|
-
const timer =
|
|
1312
|
+
const timer = import_util5.tracer.mark("dxos.echo.pipeline.control");
|
|
1284
1313
|
const result = await this._spaceStateMachine.process(msg.data.payload.credential.credential, {
|
|
1285
|
-
sourceFeed:
|
|
1314
|
+
sourceFeed: import_keys4.PublicKey.from(msg.feedKey)
|
|
1286
1315
|
});
|
|
1287
1316
|
timer.end();
|
|
1288
1317
|
if (!result) {
|
|
@@ -1359,6 +1388,18 @@ ControlPipeline = _ts_decorate4([
|
|
|
1359
1388
|
import_tracing2.trace.resource(),
|
|
1360
1389
|
(0, import_async6.trackLeaks)("start", "stop")
|
|
1361
1390
|
], ControlPipeline);
|
|
1391
|
+
var getSnapshotLoggerContext = (snapshot) => {
|
|
1392
|
+
return snapshot.messages?.map((msg) => {
|
|
1393
|
+
const issuer = msg.credential.issuer;
|
|
1394
|
+
const subject = msg.credential.subject.id;
|
|
1395
|
+
const type = msg.credential.subject.assertion["@type"];
|
|
1396
|
+
return {
|
|
1397
|
+
issuer,
|
|
1398
|
+
subject,
|
|
1399
|
+
type
|
|
1400
|
+
};
|
|
1401
|
+
});
|
|
1402
|
+
};
|
|
1362
1403
|
function _ts_decorate5(decorators, target, key, desc) {
|
|
1363
1404
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1364
1405
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1369,7 +1410,7 @@ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipelin
|
|
|
1369
1410
|
var Space = class extends import_context4.Resource {
|
|
1370
1411
|
constructor(params) {
|
|
1371
1412
|
super();
|
|
1372
|
-
this.onCredentialProcessed = new
|
|
1413
|
+
this.onCredentialProcessed = new import_util4.Callback();
|
|
1373
1414
|
this.stateUpdate = new import_async5.Event();
|
|
1374
1415
|
(0, import_invariant6.invariant)(params.spaceKey && params.feedProvider, void 0, {
|
|
1375
1416
|
F: __dxlog_file8,
|
|
@@ -1640,13 +1681,13 @@ var MOCK_AUTH_VERIFIER = async (nonce, credential) => true;
|
|
|
1640
1681
|
var SpaceProtocol = class {
|
|
1641
1682
|
constructor({ topic, swarmIdentity, networkManager, onSessionAuth, onAuthFailure, blobStore, disableP2pReplication }) {
|
|
1642
1683
|
this._feeds = /* @__PURE__ */ new Set();
|
|
1643
|
-
this._sessions = new
|
|
1684
|
+
this._sessions = new import_util6.ComplexMap(import_keys5.PublicKey.hash);
|
|
1644
1685
|
this._topology = new import_network_manager.MMSTTopology({
|
|
1645
1686
|
originateConnections: 4,
|
|
1646
1687
|
maxPeers: 10,
|
|
1647
1688
|
sampleSize: 20
|
|
1648
1689
|
});
|
|
1649
|
-
this.feedAdded = new
|
|
1690
|
+
this.feedAdded = new import_util6.CallbackCollection();
|
|
1650
1691
|
this._spaceKey = topic;
|
|
1651
1692
|
this._networkManager = networkManager;
|
|
1652
1693
|
this._swarmIdentity = swarmIdentity;
|
|
@@ -1655,7 +1696,7 @@ var SpaceProtocol = class {
|
|
|
1655
1696
|
this.blobSync = new import_teleport_extension_object_sync.BlobSync({
|
|
1656
1697
|
blobStore
|
|
1657
1698
|
});
|
|
1658
|
-
this._topic =
|
|
1699
|
+
this._topic = import_crypto3.subtleCrypto.digest("SHA-256", topic.asBuffer()).then(import_crypto3.discoveryKey).then(import_keys5.PublicKey.from);
|
|
1659
1700
|
this._disableP2pReplication = disableP2pReplication ?? false;
|
|
1660
1701
|
}
|
|
1661
1702
|
get sessions() {
|
|
@@ -1849,8 +1890,8 @@ function _ts_decorate7(decorators, target, key, desc) {
|
|
|
1849
1890
|
var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space-manager.ts";
|
|
1850
1891
|
var SpaceManager = class {
|
|
1851
1892
|
constructor({ feedStore, networkManager, metadataStore, blobStore, disableP2pReplication }) {
|
|
1852
|
-
this._spaces = new
|
|
1853
|
-
this._instanceId =
|
|
1893
|
+
this._spaces = new import_util7.ComplexMap(import_keys6.PublicKey.hash);
|
|
1894
|
+
this._instanceId = import_keys6.PublicKey.random().toHex();
|
|
1854
1895
|
this._feedStore = feedStore;
|
|
1855
1896
|
this._networkManager = networkManager;
|
|
1856
1897
|
this._metadataStore = metadataStore;
|
|
@@ -1887,7 +1928,7 @@ var SpaceManager = class {
|
|
|
1887
1928
|
});
|
|
1888
1929
|
const genesisFeed = await this._feedStore.openFeed(metadata.genesisFeedKey ?? (0, import_debug3.failUndefined)());
|
|
1889
1930
|
const spaceKey = metadata.key;
|
|
1890
|
-
const spaceId = await
|
|
1931
|
+
const spaceId = await createIdFromSpaceKey(spaceKey);
|
|
1891
1932
|
const protocol = new SpaceProtocol({
|
|
1892
1933
|
topic: spaceKey,
|
|
1893
1934
|
swarmIdentity,
|
|
@@ -2007,6 +2048,7 @@ SpaceManager = _ts_decorate7([
|
|
|
2007
2048
|
SpaceProtocolSession,
|
|
2008
2049
|
TimeframeClock,
|
|
2009
2050
|
codec,
|
|
2051
|
+
createIdFromSpaceKey,
|
|
2010
2052
|
createMappedFeedWriter,
|
|
2011
2053
|
hasInvitationExpired,
|
|
2012
2054
|
mapFeedIndexesToTimeframe,
|
|
@@ -2014,4 +2056,4 @@ SpaceManager = _ts_decorate7([
|
|
|
2014
2056
|
startAfter,
|
|
2015
2057
|
valueEncoding
|
|
2016
2058
|
});
|
|
2017
|
-
//# sourceMappingURL=chunk-
|
|
2059
|
+
//# sourceMappingURL=chunk-6EZVIJNE.cjs.map
|