@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.
Files changed (40) hide show
  1. package/dist/lib/browser/{chunk-RRKGEIVZ.mjs → chunk-LZK5YFYE.mjs} +13 -13
  2. package/dist/lib/browser/{chunk-RRKGEIVZ.mjs.map → chunk-LZK5YFYE.mjs.map} +2 -2
  3. package/dist/lib/browser/index.mjs +42 -61
  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 +1 -1
  7. package/dist/lib/node/{chunk-6KAVD3GU.cjs → chunk-MACQJ2EP.cjs} +16 -16
  8. package/dist/lib/node/{chunk-6KAVD3GU.cjs.map → chunk-MACQJ2EP.cjs.map} +2 -2
  9. package/dist/lib/node/index.cjs +66 -87
  10. package/dist/lib/node/index.cjs.map +4 -4
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/testing/index.cjs +10 -10
  13. package/dist/lib/node-esm/{chunk-4QES5F4H.mjs → chunk-JIZPSASG.mjs} +13 -13
  14. package/dist/lib/node-esm/{chunk-4QES5F4H.mjs.map → chunk-JIZPSASG.mjs.map} +2 -2
  15. package/dist/lib/node-esm/index.mjs +42 -61
  16. package/dist/lib/node-esm/index.mjs.map +4 -4
  17. package/dist/lib/node-esm/meta.json +1 -1
  18. package/dist/lib/node-esm/testing/index.mjs +1 -1
  19. package/dist/types/src/automerge/automerge-host.d.ts +7 -1
  20. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  21. package/dist/types/src/db-host/echo-host.d.ts +3 -2
  22. package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
  23. package/dist/types/src/db-host/index.d.ts +0 -1
  24. package/dist/types/src/db-host/index.d.ts.map +1 -1
  25. package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
  26. package/dist/types/src/index.d.ts +1 -0
  27. package/dist/types/src/index.d.ts.map +1 -1
  28. package/dist/types/src/space/space.d.ts.map +1 -1
  29. package/dist/types/src/{db-host/migration.d.ts → util.d.ts} +1 -3
  30. package/dist/types/src/util.d.ts.map +1 -0
  31. package/package.json +34 -34
  32. package/src/automerge/automerge-host.ts +12 -3
  33. package/src/db-host/echo-host.ts +4 -1
  34. package/src/db-host/index.ts +0 -1
  35. package/src/edge/echo-edge-replicator.ts +3 -0
  36. package/src/index.ts +1 -0
  37. package/src/space/space.ts +1 -0
  38. package/src/util.ts +19 -0
  39. package/dist/types/src/db-host/migration.d.ts.map +0 -1
  40. 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-RRKGEIVZ.mjs";
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: 230
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: 242,
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: 246,
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: 251,
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: 258,
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: 486,
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: 544,
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: 206,
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: 225,
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: 121,
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: 122,
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: 145,
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: 239,
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: 251,
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: 257,
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: 288,
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: 318,
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,