@dxos/echo-pipeline 0.7.2 → 0.7.3-staging.971cd8d
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-RRKGEIVZ.mjs → chunk-LZK5YFYE.mjs} +13 -13
- package/dist/lib/browser/{chunk-RRKGEIVZ.mjs.map → chunk-LZK5YFYE.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +42 -61
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/lib/node/{chunk-6KAVD3GU.cjs → chunk-MACQJ2EP.cjs} +16 -16
- package/dist/lib/node/{chunk-6KAVD3GU.cjs.map → chunk-MACQJ2EP.cjs.map} +2 -2
- package/dist/lib/node/index.cjs +66 -87
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +10 -10
- package/dist/lib/node-esm/{chunk-4QES5F4H.mjs → chunk-JIZPSASG.mjs} +13 -13
- package/dist/lib/node-esm/{chunk-4QES5F4H.mjs.map → chunk-JIZPSASG.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +42 -61
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +1 -1
- package/dist/types/src/automerge/automerge-host.d.ts +7 -1
- package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
- package/dist/types/src/db-host/echo-host.d.ts +3 -2
- package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
- package/dist/types/src/db-host/index.d.ts +0 -1
- package/dist/types/src/db-host/index.d.ts.map +1 -1
- package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/space/space.d.ts.map +1 -1
- package/dist/types/src/{db-host/migration.d.ts → util.d.ts} +1 -3
- package/dist/types/src/util.d.ts.map +1 -0
- package/package.json +34 -34
- package/src/automerge/automerge-host.ts +12 -3
- package/src/db-host/echo-host.ts +4 -1
- package/src/db-host/index.ts +0 -1
- package/src/edge/echo-edge-replicator.ts +3 -0
- package/src/index.ts +1 -0
- package/src/space/space.ts +1 -0
- package/src/util.ts +19 -0
- package/dist/types/src/db-host/migration.d.ts.map +0 -1
- package/src/db-host/migration.ts +0 -57
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
mapTimeframeToFeedIndexes,
|
|
22
22
|
startAfter,
|
|
23
23
|
valueEncoding
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-LZK5YFYE.mjs";
|
|
25
25
|
|
|
26
26
|
// packages/core/echo/echo-pipeline/src/db-host/data-service.ts
|
|
27
27
|
import { UpdateScheduler as UpdateScheduler2 } from "@dxos/async";
|
|
@@ -889,7 +889,7 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
889
889
|
}
|
|
890
890
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/automerge/automerge-host.ts";
|
|
891
891
|
var AutomergeHost = class extends Resource4 {
|
|
892
|
-
constructor({ db, indexMetadataStore, dataMonitor }) {
|
|
892
|
+
constructor({ db, indexMetadataStore, dataMonitor, peerIdProvider }) {
|
|
893
893
|
super();
|
|
894
894
|
this._collectionSynchronizer = new CollectionSynchronizer({
|
|
895
895
|
queryCollectionState: this._queryCollectionState.bind(this),
|
|
@@ -917,9 +917,10 @@ var AutomergeHost = class extends Resource4 {
|
|
|
917
917
|
db: db.sublevel("heads")
|
|
918
918
|
});
|
|
919
919
|
this._indexMetadataStore = indexMetadataStore;
|
|
920
|
+
this._peerIdProvider = peerIdProvider;
|
|
920
921
|
}
|
|
921
922
|
async _open() {
|
|
922
|
-
this._peerId = `host-${PublicKey.random().toHex()}`;
|
|
923
|
+
this._peerId = `host-${this._peerIdProvider?.() ?? PublicKey.random().toHex()}`;
|
|
923
924
|
await this._storage.open?.();
|
|
924
925
|
this._repo = new Repo({
|
|
925
926
|
peerId: this._peerId,
|
|
@@ -1019,7 +1020,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1019
1020
|
await Promise.all(headsToWait.map(async (entry, index) => {
|
|
1020
1021
|
const handle = await this.loadDoc(Context.default(void 0, {
|
|
1021
1022
|
F: __dxlog_file4,
|
|
1022
|
-
L:
|
|
1023
|
+
L: 239
|
|
1023
1024
|
}), entry.documentId);
|
|
1024
1025
|
await waitForHeads(handle, entry.heads);
|
|
1025
1026
|
}));
|
|
@@ -1032,7 +1033,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1032
1033
|
documentId
|
|
1033
1034
|
}, {
|
|
1034
1035
|
F: __dxlog_file4,
|
|
1035
|
-
L:
|
|
1036
|
+
L: 251,
|
|
1036
1037
|
S: this,
|
|
1037
1038
|
C: (f, a) => f(...a)
|
|
1038
1039
|
});
|
|
@@ -1048,7 +1049,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1048
1049
|
documentId
|
|
1049
1050
|
}, {
|
|
1050
1051
|
F: __dxlog_file4,
|
|
1051
|
-
L:
|
|
1052
|
+
L: 255,
|
|
1052
1053
|
S: this,
|
|
1053
1054
|
C: (f, a) => f(...a)
|
|
1054
1055
|
});
|
|
@@ -1057,7 +1058,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1057
1058
|
const doc = handle.docSync();
|
|
1058
1059
|
invariant3(doc, void 0, {
|
|
1059
1060
|
F: __dxlog_file4,
|
|
1060
|
-
L:
|
|
1061
|
+
L: 260,
|
|
1061
1062
|
S: this,
|
|
1062
1063
|
A: [
|
|
1063
1064
|
"doc",
|
|
@@ -1071,7 +1072,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1071
1072
|
}
|
|
1072
1073
|
log4.info("done re-indexing heads", void 0, {
|
|
1073
1074
|
F: __dxlog_file4,
|
|
1074
|
-
L:
|
|
1075
|
+
L: 267,
|
|
1075
1076
|
S: this,
|
|
1076
1077
|
C: (f, a) => f(...a)
|
|
1077
1078
|
});
|
|
@@ -1277,7 +1278,7 @@ var AutomergeHost = class extends Resource4 {
|
|
|
1277
1278
|
count: toReplicate.length
|
|
1278
1279
|
}, {
|
|
1279
1280
|
F: __dxlog_file4,
|
|
1280
|
-
L:
|
|
1281
|
+
L: 495,
|
|
1281
1282
|
S: this,
|
|
1282
1283
|
C: (f, a) => f(...a)
|
|
1283
1284
|
});
|
|
@@ -1344,7 +1345,7 @@ var changeIsPresentInDoc = (doc, changeHash) => {
|
|
|
1344
1345
|
var decodeCollectionState = (state) => {
|
|
1345
1346
|
invariant3(typeof state === "object" && state !== null, "Invalid state", {
|
|
1346
1347
|
F: __dxlog_file4,
|
|
1347
|
-
L:
|
|
1348
|
+
L: 553,
|
|
1348
1349
|
S: void 0,
|
|
1349
1350
|
A: [
|
|
1350
1351
|
"typeof state === 'object' && state !== null",
|
|
@@ -2886,7 +2887,7 @@ var INDEXER_CONFIG = {
|
|
|
2886
2887
|
]
|
|
2887
2888
|
};
|
|
2888
2889
|
var EchoHost = class extends Resource9 {
|
|
2889
|
-
constructor({ kv }) {
|
|
2890
|
+
constructor({ kv, peerIdProvider }) {
|
|
2890
2891
|
super();
|
|
2891
2892
|
this._spaceStateManager = new SpaceStateManager();
|
|
2892
2893
|
this._indexMetadataStore = new IndexMetadataStore({
|
|
@@ -2896,7 +2897,8 @@ var EchoHost = class extends Resource9 {
|
|
|
2896
2897
|
this._automergeHost = new AutomergeHost({
|
|
2897
2898
|
db: kv,
|
|
2898
2899
|
dataMonitor: this._echoDataMonitor,
|
|
2899
|
-
indexMetadataStore: this._indexMetadataStore
|
|
2900
|
+
indexMetadataStore: this._indexMetadataStore,
|
|
2901
|
+
peerIdProvider
|
|
2900
2902
|
});
|
|
2901
2903
|
this._indexer = new Indexer({
|
|
2902
2904
|
db: kv,
|
|
@@ -3016,7 +3018,7 @@ var EchoHost = class extends Resource9 {
|
|
|
3016
3018
|
async createSpaceRoot(spaceKey) {
|
|
3017
3019
|
invariant11(this._lifecycleState === LifecycleState4.OPEN, void 0, {
|
|
3018
3020
|
F: __dxlog_file15,
|
|
3019
|
-
L:
|
|
3021
|
+
L: 209,
|
|
3020
3022
|
S: this,
|
|
3021
3023
|
A: [
|
|
3022
3024
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -3044,7 +3046,7 @@ var EchoHost = class extends Resource9 {
|
|
|
3044
3046
|
async openSpaceRoot(spaceId, automergeUrl) {
|
|
3045
3047
|
invariant11(this._lifecycleState === LifecycleState4.OPEN, void 0, {
|
|
3046
3048
|
F: __dxlog_file15,
|
|
3047
|
-
L:
|
|
3049
|
+
L: 228,
|
|
3048
3050
|
S: this,
|
|
3049
3051
|
A: [
|
|
3050
3052
|
"this._lifecycleState === LifecycleState.OPEN",
|
|
@@ -3076,43 +3078,6 @@ var EchoHost = class extends Resource9 {
|
|
|
3076
3078
|
}
|
|
3077
3079
|
};
|
|
3078
3080
|
|
|
3079
|
-
// packages/core/echo/echo-pipeline/src/db-host/migration.ts
|
|
3080
|
-
import { convertLegacyReference } from "@dxos/echo-protocol";
|
|
3081
|
-
import { decodeReference, encodeReference, isLegacyReference, LEGACY_TYPE_PROPERTIES, Reference, SpaceDocVersion as SpaceDocVersion4 } from "@dxos/echo-protocol";
|
|
3082
|
-
import { TYPE_PROPERTIES } from "@dxos/echo-schema";
|
|
3083
|
-
import { deepMapValuesAsync } from "@dxos/util";
|
|
3084
|
-
var convertLegacyReferences = async (doc) => {
|
|
3085
|
-
const newDoc = await deepMapValuesAsync(doc, async (value, recurse) => {
|
|
3086
|
-
if (isLegacyReference(value)) {
|
|
3087
|
-
return convertLegacyReference(value);
|
|
3088
|
-
}
|
|
3089
|
-
return recurse(value);
|
|
3090
|
-
});
|
|
3091
|
-
newDoc.version = SpaceDocVersion4.CURRENT;
|
|
3092
|
-
return newDoc;
|
|
3093
|
-
};
|
|
3094
|
-
var convertLegacySpaceRootDoc = async (root) => {
|
|
3095
|
-
const newDoc = await convertLegacyReferences(root);
|
|
3096
|
-
const properties = findInlineObjectOfType(newDoc, LEGACY_TYPE_PROPERTIES);
|
|
3097
|
-
if (properties) {
|
|
3098
|
-
const [_, obj] = properties;
|
|
3099
|
-
obj.system.type = encodeReference(Reference.fromLegacyTypename(TYPE_PROPERTIES));
|
|
3100
|
-
}
|
|
3101
|
-
return newDoc;
|
|
3102
|
-
};
|
|
3103
|
-
var findInlineObjectOfType = (spaceDoc, typename) => {
|
|
3104
|
-
for (const id in spaceDoc.objects ?? {}) {
|
|
3105
|
-
const obj = spaceDoc.objects[id];
|
|
3106
|
-
if (obj.system.type && decodeReference(obj.system.type).objectId === typename) {
|
|
3107
|
-
return [
|
|
3108
|
-
id,
|
|
3109
|
-
obj
|
|
3110
|
-
];
|
|
3111
|
-
}
|
|
3112
|
-
}
|
|
3113
|
-
return void 0;
|
|
3114
|
-
};
|
|
3115
|
-
|
|
3116
3081
|
// packages/core/echo/echo-pipeline/src/edge/echo-edge-replicator.ts
|
|
3117
3082
|
import { Mutex, scheduleTask as scheduleTask2, scheduleMicroTask } from "@dxos/async";
|
|
3118
3083
|
import * as A5 from "@dxos/automerge/automerge";
|
|
@@ -3262,6 +3227,9 @@ var EchoEdgeReplicator = class {
|
|
|
3262
3227
|
try {
|
|
3263
3228
|
var _usingCtx = _using_ctx();
|
|
3264
3229
|
const _guard = _usingCtx.u(await this._mutex.acquire());
|
|
3230
|
+
if (this._connectedSpaces.has(spaceId)) {
|
|
3231
|
+
return;
|
|
3232
|
+
}
|
|
3265
3233
|
this._connectedSpaces.add(spaceId);
|
|
3266
3234
|
if (this._context !== null) {
|
|
3267
3235
|
await this._openConnection(spaceId);
|
|
@@ -3291,7 +3259,7 @@ var EchoEdgeReplicator = class {
|
|
|
3291
3259
|
async _openConnection(spaceId, reconnects = 0) {
|
|
3292
3260
|
invariant12(this._context, void 0, {
|
|
3293
3261
|
F: __dxlog_file16,
|
|
3294
|
-
L:
|
|
3262
|
+
L: 124,
|
|
3295
3263
|
S: this,
|
|
3296
3264
|
A: [
|
|
3297
3265
|
"this._context",
|
|
@@ -3300,7 +3268,7 @@ var EchoEdgeReplicator = class {
|
|
|
3300
3268
|
});
|
|
3301
3269
|
invariant12(!this._connections.has(spaceId), void 0, {
|
|
3302
3270
|
F: __dxlog_file16,
|
|
3303
|
-
L:
|
|
3271
|
+
L: 125,
|
|
3304
3272
|
S: this,
|
|
3305
3273
|
A: [
|
|
3306
3274
|
"!this._connections.has(spaceId)",
|
|
@@ -3330,7 +3298,7 @@ var EchoEdgeReplicator = class {
|
|
|
3330
3298
|
restartDelay
|
|
3331
3299
|
}, {
|
|
3332
3300
|
F: __dxlog_file16,
|
|
3333
|
-
L:
|
|
3301
|
+
L: 148,
|
|
3334
3302
|
S: this,
|
|
3335
3303
|
C: (f, a) => f(...a)
|
|
3336
3304
|
});
|
|
@@ -3388,7 +3356,7 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3388
3356
|
async _open(ctx) {
|
|
3389
3357
|
log11("open", void 0, {
|
|
3390
3358
|
F: __dxlog_file16,
|
|
3391
|
-
L:
|
|
3359
|
+
L: 242,
|
|
3392
3360
|
S: this,
|
|
3393
3361
|
C: (f, a) => f(...a)
|
|
3394
3362
|
});
|
|
@@ -3400,7 +3368,7 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3400
3368
|
async _close() {
|
|
3401
3369
|
log11("close", void 0, {
|
|
3402
3370
|
F: __dxlog_file16,
|
|
3403
|
-
L:
|
|
3371
|
+
L: 254,
|
|
3404
3372
|
S: this,
|
|
3405
3373
|
C: (f, a) => f(...a)
|
|
3406
3374
|
});
|
|
@@ -3410,7 +3378,7 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3410
3378
|
get peerId() {
|
|
3411
3379
|
invariant12(this._remotePeerId, "Not connected", {
|
|
3412
3380
|
F: __dxlog_file16,
|
|
3413
|
-
L:
|
|
3381
|
+
L: 260,
|
|
3414
3382
|
S: this,
|
|
3415
3383
|
A: [
|
|
3416
3384
|
"this._remotePeerId",
|
|
@@ -3450,7 +3418,7 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3450
3418
|
};
|
|
3451
3419
|
}, {
|
|
3452
3420
|
F: __dxlog_file16,
|
|
3453
|
-
L:
|
|
3421
|
+
L: 291,
|
|
3454
3422
|
S: this,
|
|
3455
3423
|
C: (f, a) => f(...a)
|
|
3456
3424
|
});
|
|
@@ -3473,7 +3441,7 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3473
3441
|
documentId: message.documentId
|
|
3474
3442
|
}, {
|
|
3475
3443
|
F: __dxlog_file16,
|
|
3476
|
-
L:
|
|
3444
|
+
L: 321,
|
|
3477
3445
|
S: this,
|
|
3478
3446
|
C: (f, a) => f(...a)
|
|
3479
3447
|
});
|
|
@@ -3491,6 +3459,21 @@ var EdgeReplicatorConnection = class extends Resource10 {
|
|
|
3491
3459
|
}
|
|
3492
3460
|
};
|
|
3493
3461
|
var isForbiddenErrorMessage = (message) => message.type === "error" && message.message === "Forbidden";
|
|
3462
|
+
|
|
3463
|
+
// packages/core/echo/echo-pipeline/src/util.ts
|
|
3464
|
+
import { decodeReference } from "@dxos/echo-protocol";
|
|
3465
|
+
var findInlineObjectOfType = (spaceDoc, typename) => {
|
|
3466
|
+
for (const id in spaceDoc.objects ?? {}) {
|
|
3467
|
+
const obj = spaceDoc.objects[id];
|
|
3468
|
+
if (obj.system.type && decodeReference(obj.system.type).objectId === typename) {
|
|
3469
|
+
return [
|
|
3470
|
+
id,
|
|
3471
|
+
obj
|
|
3472
|
+
];
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3475
|
+
return void 0;
|
|
3476
|
+
};
|
|
3494
3477
|
export {
|
|
3495
3478
|
AuthExtension,
|
|
3496
3479
|
AuthStatus,
|
|
@@ -3517,8 +3500,6 @@ export {
|
|
|
3517
3500
|
SpaceProtocolSession,
|
|
3518
3501
|
TimeframeClock,
|
|
3519
3502
|
codec,
|
|
3520
|
-
convertLegacyReferences,
|
|
3521
|
-
convertLegacySpaceRootDoc,
|
|
3522
3503
|
createIdFromSpaceKey,
|
|
3523
3504
|
createMappedFeedWriter,
|
|
3524
3505
|
deriveCollectionIdFromSpaceId,
|