@dxos/echo-pipeline 0.3.11-main.d7d4c52 → 0.3.11-main.d8b8a39

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 (32) hide show
  1. package/dist/lib/browser/{chunk-W3SSYW3X.mjs → chunk-MPBRK5OV.mjs} +39 -30
  2. package/dist/lib/browser/chunk-MPBRK5OV.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +29 -7
  6. package/dist/lib/browser/testing/index.mjs.map +4 -4
  7. package/dist/lib/node/{chunk-KTFCZMAY.cjs → chunk-GJQNRSA3.cjs} +42 -33
  8. package/dist/lib/node/chunk-GJQNRSA3.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +26 -26
  10. package/dist/lib/node/index.cjs.map +1 -1
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/testing/index.cjs +42 -21
  13. package/dist/lib/node/testing/index.cjs.map +4 -4
  14. package/dist/types/src/automerge/automerge-host.d.ts +26 -1
  15. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  16. package/dist/types/src/automerge/index.d.ts +1 -1
  17. package/dist/types/src/automerge/index.d.ts.map +1 -1
  18. package/dist/types/src/metadata/metadata-store.d.ts +1 -3
  19. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  20. package/dist/types/src/testing/change-metadata.d.ts +8 -0
  21. package/dist/types/src/testing/change-metadata.d.ts.map +1 -0
  22. package/dist/types/src/testing/index.d.ts +1 -0
  23. package/dist/types/src/testing/index.d.ts.map +1 -1
  24. package/package.json +33 -33
  25. package/src/automerge/automerge-host.test.ts +212 -36
  26. package/src/automerge/automerge-host.ts +21 -12
  27. package/src/automerge/index.ts +1 -1
  28. package/src/metadata/metadata-store.ts +12 -2
  29. package/src/testing/change-metadata.ts +27 -0
  30. package/src/testing/index.ts +1 -0
  31. package/dist/lib/browser/chunk-W3SSYW3X.mjs.map +0 -7
  32. package/dist/lib/node/chunk-KTFCZMAY.cjs.map +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 chunk_KTFCZMAY_exports = {};
30
- __export(chunk_KTFCZMAY_exports, {
29
+ var chunk_GJQNRSA3_exports = {};
30
+ __export(chunk_GJQNRSA3_exports, {
31
31
  AuthExtension: () => AuthExtension,
32
32
  AuthStatus: () => AuthStatus,
33
33
  AutomergeHost: () => AutomergeHost,
@@ -54,7 +54,7 @@ __export(chunk_KTFCZMAY_exports, {
54
54
  startAfter: () => startAfter,
55
55
  valueEncoding: () => valueEncoding
56
56
  });
57
- module.exports = __toCommonJS(chunk_KTFCZMAY_exports);
57
+ module.exports = __toCommonJS(chunk_GJQNRSA3_exports);
58
58
  var import_hypercore = require("@dxos/hypercore");
59
59
  var import_protocols = require("@dxos/protocols");
60
60
  var import_invariant = require("@dxos/invariant");
@@ -148,9 +148,11 @@ var import_log12 = require("@dxos/log");
148
148
  var import_protocols7 = require("@dxos/protocols");
149
149
  var import_util9 = require("@dxos/util");
150
150
  var import_automerge_repo = require("@dxos/automerge/automerge-repo");
151
+ var import_automerge_repo_storage_indexeddb = require("@dxos/automerge/automerge-repo-storage-indexeddb");
151
152
  var import_codec_protobuf2 = require("@dxos/codec-protobuf");
152
153
  var import_invariant10 = require("@dxos/invariant");
153
154
  var import_log13 = require("@dxos/log");
155
+ var import_random_access_storage = require("@dxos/random-access-storage");
154
156
  var import_teleport_extension_automerge_replicator = require("@dxos/teleport-extension-automerge-replicator");
155
157
  var import_util10 = require("@dxos/util");
156
158
  var codec = import_protocols.schema.getCodecForType("dxos.echo.feed.FeedMessage");
@@ -619,12 +621,12 @@ var emptyLargeSpaceMetadata = () => ({});
619
621
  var EchoMetadata = import_protocols4.schema.getCodecForType("dxos.echo.metadata.EchoMetadata");
620
622
  var LargeSpaceMetadata = import_protocols4.schema.getCodecForType("dxos.echo.metadata.LargeSpaceMetadata");
621
623
  var MetadataStore = class {
622
- constructor(_directory) {
623
- this._directory = _directory;
624
+ constructor(directory) {
624
625
  this._metadata = emptyEchoMetadata();
625
626
  this._spaceLargeMetadata = new import_util3.ComplexMap(import_keys3.PublicKey.hash);
626
627
  this._metadataFile = void 0;
627
628
  this.update = new import_async2.Event();
629
+ this._directory = directory;
628
630
  }
629
631
  get metadata() {
630
632
  return this._metadata;
@@ -653,7 +655,7 @@ var MetadataStore = class {
653
655
  name: file.filename
654
656
  }, {
655
657
  F: __dxlog_file4,
656
- L: 78,
658
+ L: 85,
657
659
  S: this,
658
660
  C: (f, a) => f(...a)
659
661
  });
@@ -673,6 +675,9 @@ var MetadataStore = class {
673
675
  await file.close();
674
676
  }
675
677
  }
678
+ /**
679
+ * @internal
680
+ */
676
681
  async _writeFile(file, codec2, data) {
677
682
  const encoded = (0, import_util3.arrayToBuffer)(codec2.encode(data));
678
683
  const checksum = import_crc_32.default.buf(encoded);
@@ -686,7 +691,7 @@ var MetadataStore = class {
686
691
  checksum
687
692
  }, {
688
693
  F: __dxlog_file4,
689
- L: 110,
694
+ L: 120,
690
695
  S: this,
691
696
  C: (f, a) => f(...a)
692
697
  });
@@ -718,7 +723,7 @@ var MetadataStore = class {
718
723
  err
719
724
  }, {
720
725
  F: __dxlog_file4,
721
- L: 141,
726
+ L: 151,
722
727
  S: this,
723
728
  C: (f, a) => f(...a)
724
729
  });
@@ -735,7 +740,7 @@ var MetadataStore = class {
735
740
  err
736
741
  }, {
737
742
  F: __dxlog_file4,
738
- L: 153,
743
+ L: 163,
739
744
  S: this,
740
745
  C: (f, a) => f(...a)
741
746
  });
@@ -765,7 +770,7 @@ var MetadataStore = class {
765
770
  err
766
771
  }, {
767
772
  F: __dxlog_file4,
768
- L: 182,
773
+ L: 192,
769
774
  S: this,
770
775
  C: (f, a) => f(...a)
771
776
  });
@@ -786,7 +791,7 @@ var MetadataStore = class {
786
791
  const space = this.spaces.find((space2) => space2.key === spaceKey);
787
792
  (0, import_invariant4.invariant)(space, "Space not found", {
788
793
  F: __dxlog_file4,
789
- L: 204,
794
+ L: 214,
790
795
  S: this,
791
796
  A: [
792
797
  "space",
@@ -810,7 +815,7 @@ var MetadataStore = class {
810
815
  async clear() {
811
816
  (0, import_log3.log)("clearing all metadata", void 0, {
812
817
  F: __dxlog_file4,
813
- L: 223,
818
+ L: 233,
814
819
  S: this,
815
820
  C: (f, a) => f(...a)
816
821
  });
@@ -823,7 +828,7 @@ var MetadataStore = class {
823
828
  async setIdentityRecord(record) {
824
829
  (0, import_invariant4.invariant)(!this._metadata.identity, "Cannot overwrite existing identity in metadata", {
825
830
  F: __dxlog_file4,
826
- L: 233,
831
+ L: 243,
827
832
  S: this,
828
833
  A: [
829
834
  "!this._metadata.identity",
@@ -837,7 +842,7 @@ var MetadataStore = class {
837
842
  async addSpace(record) {
838
843
  (0, import_invariant4.invariant)(!(this._metadata.spaces ?? []).find((space) => space.key === record.key), "Cannot overwrite existing space in metadata", {
839
844
  F: __dxlog_file4,
840
- L: 241,
845
+ L: 251,
841
846
  S: this,
842
847
  A: [
843
848
  "!(this._metadata.spaces ?? []).find((space) => space.key === record.key)",
@@ -1531,7 +1536,7 @@ var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipelin
1531
1536
  var MESSAGES_PER_SNAPSHOT = 10;
1532
1537
  var AUTOMATIC_SNAPSHOT_DEBOUNCE_INTERVAL = 5e3;
1533
1538
  var TIMEFRAME_SAVE_DEBOUNCE_INTERVAL = 5e3;
1534
- var DataPipeline = class DataPipeline2 {
1539
+ var DataPipeline = class {
1535
1540
  constructor(_params) {
1536
1541
  this._params = _params;
1537
1542
  this._ctx = new import_context5.Context();
@@ -1986,7 +1991,7 @@ var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeli
1986
1991
  var TIMEFRAME_SAVE_DEBOUNCE_INTERVAL2 = 500;
1987
1992
  var CONTROL_PIPELINE_SNAPSHOT_DELAY = 1e4;
1988
1993
  var USE_SNAPSHOTS = true;
1989
- var ControlPipeline = class ControlPipeline2 {
1994
+ var ControlPipeline = class {
1990
1995
  constructor({ spaceKey, genesisFeed, feedProvider, metadataStore }) {
1991
1996
  this._ctx = new import_context6.Context();
1992
1997
  this._lastTimeframeSaveTime = Date.now();
@@ -2230,7 +2235,7 @@ function _ts_decorate6(decorators, target, key, desc) {
2230
2235
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2231
2236
  }
2232
2237
  var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space.ts";
2233
- var Space = class Space2 {
2238
+ var Space = class {
2234
2239
  constructor(params) {
2235
2240
  this._addFeedLock = new import_async7.Lock();
2236
2241
  this.onCredentialProcessed = new import_util6.Callback();
@@ -2603,7 +2608,7 @@ var SpaceProtocolSession = class {
2603
2608
  this.replicator = new import_teleport_extension_replicator.ReplicatorExtension().setOptions({
2604
2609
  upload: true
2605
2610
  });
2606
- this._authStatus = AuthStatus.INITIAL;
2611
+ this._authStatus = "INITIAL";
2607
2612
  this._wireParams = wireParams;
2608
2613
  this._swarmIdentity = swarmIdentity;
2609
2614
  this._onSessionAuth = onSessionAuth;
@@ -2632,11 +2637,11 @@ var SpaceProtocolSession = class {
2632
2637
  S: this,
2633
2638
  C: (f, a) => f(...a)
2634
2639
  });
2635
- this._authStatus = AuthStatus.SUCCESS;
2640
+ this._authStatus = "SUCCESS";
2636
2641
  this._onSessionAuth?.(this._teleport);
2637
2642
  },
2638
2643
  onAuthFailure: () => {
2639
- this._authStatus = AuthStatus.FAILURE;
2644
+ this._authStatus = "FAILURE";
2640
2645
  this._onAuthFailure?.(this._teleport);
2641
2646
  }
2642
2647
  }));
@@ -2673,7 +2678,7 @@ function _ts_decorate8(decorators, target, key, desc) {
2673
2678
  return c > 3 && r && Object.defineProperty(target, key, r), r;
2674
2679
  }
2675
2680
  var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/space/space-manager.ts";
2676
- var SpaceManager = class SpaceManager2 {
2681
+ var SpaceManager = class {
2677
2682
  constructor({ feedStore, networkManager, modelFactory, metadataStore, snapshotStore, blobStore }) {
2678
2683
  this._spaces = new import_util9.ComplexMap(import_keys7.PublicKey.hash);
2679
2684
  this._instanceId = import_keys7.PublicKey.random().toHex();
@@ -2759,7 +2764,7 @@ var AutomergeHost = class {
2759
2764
  constructor(storageDirectory) {
2760
2765
  this._meshNetwork = new MeshNetworkAdapter();
2761
2766
  this._clientNetwork = new LocalHostNetworkAdapter();
2762
- this._storage = new AutomergeStorageAdapter(storageDirectory);
2767
+ this._storage = storageDirectory.type === import_random_access_storage.StorageType.IDB ? new import_automerge_repo_storage_indexeddb.IndexedDBStorageAdapter(storageDirectory.path, "data") : new AutomergeStorageAdapter(storageDirectory);
2763
2768
  this._repo = new import_automerge_repo.Repo({
2764
2769
  network: [
2765
2770
  this._clientNetwork,
@@ -2817,7 +2822,7 @@ var LocalHostNetworkAdapter = class extends import_automerge_repo.NetworkAdapter
2817
2822
  const peer = this._peers.get(message.targetId);
2818
2823
  (0, import_invariant10.invariant)(peer, "Peer not found.", {
2819
2824
  F: __dxlog_file14,
2820
- L: 108,
2825
+ L: 114,
2821
2826
  S: this,
2822
2827
  A: [
2823
2828
  "peer",
@@ -2837,7 +2842,7 @@ var LocalHostNetworkAdapter = class extends import_automerge_repo.NetworkAdapter
2837
2842
  return new import_codec_protobuf2.Stream(({ next, close }) => {
2838
2843
  (0, import_invariant10.invariant)(!this._peers.has(peerId), "Peer already connected.", {
2839
2844
  F: __dxlog_file14,
2840
- L: 126,
2845
+ L: 132,
2841
2846
  S: this,
2842
2847
  A: [
2843
2848
  "!this._peers.has(peerId)",
@@ -2871,7 +2876,7 @@ var LocalHostNetworkAdapter = class extends import_automerge_repo.NetworkAdapter
2871
2876
  getHostInfo() {
2872
2877
  (0, import_invariant10.invariant)(this.peerId, "Peer id not set.", {
2873
2878
  F: __dxlog_file14,
2874
- L: 155,
2879
+ L: 161,
2875
2880
  S: this,
2876
2881
  A: [
2877
2882
  "this.peerId",
@@ -2907,7 +2912,7 @@ var MeshNetworkAdapter = class extends import_automerge_repo.NetworkAdapter {
2907
2912
  const extension = this._extensions.get(receiverId);
2908
2913
  (0, import_invariant10.invariant)(extension, "Extension not found.", {
2909
2914
  F: __dxlog_file14,
2910
- L: 190,
2915
+ L: 196,
2911
2916
  S: this,
2912
2917
  A: [
2913
2918
  "extension",
@@ -2918,7 +2923,7 @@ var MeshNetworkAdapter = class extends import_automerge_repo.NetworkAdapter {
2918
2923
  payload: import_automerge_repo.cbor.encode(message)
2919
2924
  }).catch((err) => import_log13.log.catch(err, void 0, {
2920
2925
  F: __dxlog_file14,
2921
- L: 191,
2926
+ L: 197,
2922
2927
  S: this,
2923
2928
  C: (f, a) => f(...a)
2924
2929
  }));
@@ -2928,7 +2933,7 @@ var MeshNetworkAdapter = class extends import_automerge_repo.NetworkAdapter {
2928
2933
  createExtension() {
2929
2934
  (0, import_invariant10.invariant)(this.peerId, "Peer id not set.", {
2930
2935
  F: __dxlog_file14,
2931
- L: 199,
2936
+ L: 205,
2932
2937
  S: this,
2933
2938
  A: [
2934
2939
  "this.peerId",
@@ -2954,9 +2959,13 @@ var MeshNetworkAdapter = class extends import_automerge_repo.NetworkAdapter {
2954
2959
  this.emit("message", message);
2955
2960
  },
2956
2961
  onClose: async () => {
2957
- peerInfo && this.emit("peer-disconnected", {
2962
+ if (!peerInfo) {
2963
+ return;
2964
+ }
2965
+ this.emit("peer-disconnected", {
2958
2966
  peerId: peerInfo.id
2959
2967
  });
2968
+ this._extensions.delete(peerInfo.id);
2960
2969
  }
2961
2970
  });
2962
2971
  return extension;
@@ -2987,7 +2996,7 @@ var AutomergeStorageAdapter = class extends import_automerge_repo.StorageAdapter
2987
2996
  async remove(key) {
2988
2997
  const filename = this._getFilename(key);
2989
2998
  const file = this._directory.getOrCreateFile(filename);
2990
- await file.truncate?.(0);
2999
+ await file.destroy();
2991
3000
  }
2992
3001
  async loadRange(keyPrefix) {
2993
3002
  const filename = this._getFilename(keyPrefix);
@@ -3006,8 +3015,8 @@ var AutomergeStorageAdapter = class extends import_automerge_repo.StorageAdapter
3006
3015
  const filename = this._getFilename(keyPrefix);
3007
3016
  const entries = await this._directory.list();
3008
3017
  await Promise.all(entries.filter((entry) => entry.startsWith(filename)).map(async (entry) => {
3009
- const file = this._directory.getOrCreateFile(filename);
3010
- await file.truncate?.(0);
3018
+ const file = this._directory.getOrCreateFile(entry);
3019
+ await file.destroy();
3011
3020
  }));
3012
3021
  }
3013
3022
  _getFilename(key) {
@@ -3045,4 +3054,4 @@ var AutomergeStorageAdapter = class extends import_automerge_repo.StorageAdapter
3045
3054
  startAfter,
3046
3055
  valueEncoding
3047
3056
  });
3048
- //# sourceMappingURL=chunk-KTFCZMAY.cjs.map
3057
+ //# sourceMappingURL=chunk-GJQNRSA3.cjs.map