@dxos/echo-db 2.33.4-dev.faf06c70 → 2.33.5-dev.1fc05a51

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 (199) hide show
  1. package/dist/src/api/selection/queries.d.ts.map +1 -1
  2. package/dist/src/api/selection/queries.js +13 -17
  3. package/dist/src/api/selection/queries.js.map +1 -1
  4. package/dist/src/api/selection/selection.d.ts.map +1 -1
  5. package/dist/src/api/selection/selection.js +1 -3
  6. package/dist/src/api/selection/selection.js.map +1 -1
  7. package/dist/src/api/selection/selection.test.js +4 -12
  8. package/dist/src/api/selection/selection.test.js.map +1 -1
  9. package/dist/src/database/item-demuxer.d.ts +1 -1
  10. package/dist/src/database/item-demuxer.d.ts.map +1 -1
  11. package/dist/src/database/item-demuxer.js +3 -5
  12. package/dist/src/database/item-demuxer.js.map +1 -1
  13. package/dist/src/database/item-manager.js +2 -2
  14. package/dist/src/database/item-manager.js.map +1 -1
  15. package/dist/src/database/testing.js +1 -1
  16. package/dist/src/database/testing.js.map +1 -1
  17. package/dist/src/echo.d.ts +5 -12
  18. package/dist/src/echo.d.ts.map +1 -1
  19. package/dist/src/echo.js +9 -20
  20. package/dist/src/echo.js.map +1 -1
  21. package/dist/src/halo/halo-factory.d.ts.map +1 -1
  22. package/dist/src/halo/halo-factory.js +5 -11
  23. package/dist/src/halo/halo-factory.js.map +1 -1
  24. package/dist/src/halo/halo-party.d.ts +3 -3
  25. package/dist/src/halo/halo-party.d.ts.map +1 -1
  26. package/dist/src/halo/halo-party.js +6 -4
  27. package/dist/src/halo/halo-party.js.map +1 -1
  28. package/dist/src/halo/halo.test.js +5 -4
  29. package/dist/src/halo/halo.test.js.map +1 -1
  30. package/dist/src/halo/identity.js +2 -2
  31. package/dist/src/halo/identity.js.map +1 -1
  32. package/dist/src/halo/party-opener.d.ts +1 -1
  33. package/dist/src/halo/party-opener.d.ts.map +1 -1
  34. package/dist/src/halo/party-opener.js +2 -2
  35. package/dist/src/halo/party-opener.js.map +1 -1
  36. package/dist/src/halo/preferences.d.ts.map +1 -1
  37. package/dist/src/halo/preferences.js +7 -10
  38. package/dist/src/halo/preferences.js.map +1 -1
  39. package/dist/src/index.d.ts +0 -1
  40. package/dist/src/index.d.ts.map +1 -1
  41. package/dist/src/index.js +0 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/invitations/greeting-protocol-provider.d.ts.map +1 -1
  44. package/dist/src/invitations/greeting-protocol-provider.js +5 -9
  45. package/dist/src/invitations/greeting-protocol-provider.js.map +1 -1
  46. package/dist/src/invitations/greeting-responder.d.ts +2 -2
  47. package/dist/src/invitations/greeting-responder.d.ts.map +1 -1
  48. package/dist/src/invitations/greeting-responder.js +8 -12
  49. package/dist/src/invitations/greeting-responder.js.map +1 -1
  50. package/dist/src/invitations/invitation-factory.d.ts +2 -2
  51. package/dist/src/invitations/invitation-factory.d.ts.map +1 -1
  52. package/dist/src/invitations/invitation-factory.js.map +1 -1
  53. package/dist/src/invitations/offline-invitation-claimer.d.ts.map +1 -1
  54. package/dist/src/invitations/offline-invitation-claimer.js +5 -7
  55. package/dist/src/invitations/offline-invitation-claimer.js.map +1 -1
  56. package/dist/src/parties/data-party.d.ts +7 -5
  57. package/dist/src/parties/data-party.d.ts.map +1 -1
  58. package/dist/src/parties/data-party.js +12 -9
  59. package/dist/src/parties/data-party.js.map +1 -1
  60. package/dist/src/parties/data-party.test.js +16 -16
  61. package/dist/src/parties/data-party.test.js.map +1 -1
  62. package/dist/src/parties/party-factory.d.ts +0 -6
  63. package/dist/src/parties/party-factory.d.ts.map +1 -1
  64. package/dist/src/parties/party-factory.js +17 -45
  65. package/dist/src/parties/party-factory.js.map +1 -1
  66. package/dist/src/parties/party-manager.d.ts.map +1 -1
  67. package/dist/src/parties/party-manager.js +2 -1
  68. package/dist/src/parties/party-manager.js.map +1 -1
  69. package/dist/src/parties/party-manager.test.js +7 -7
  70. package/dist/src/parties/party-manager.test.js.map +1 -1
  71. package/dist/src/pipeline/message-selector.d.ts +2 -2
  72. package/dist/src/pipeline/message-selector.d.ts.map +1 -1
  73. package/dist/src/pipeline/message-selector.js +29 -39
  74. package/dist/src/pipeline/message-selector.js.map +1 -1
  75. package/dist/src/pipeline/metadata-store.d.ts +3 -3
  76. package/dist/src/pipeline/metadata-store.d.ts.map +1 -1
  77. package/dist/src/pipeline/metadata-store.js +5 -5
  78. package/dist/src/pipeline/metadata-store.js.map +1 -1
  79. package/dist/src/pipeline/metadata-store.test.js +9 -5
  80. package/dist/src/pipeline/metadata-store.test.js.map +1 -1
  81. package/dist/src/pipeline/party-core.d.ts +3 -2
  82. package/dist/src/pipeline/party-core.d.ts.map +1 -1
  83. package/dist/src/pipeline/party-core.js +5 -0
  84. package/dist/src/pipeline/party-core.js.map +1 -1
  85. package/dist/src/pipeline/party-core.test.js +17 -43
  86. package/dist/src/pipeline/party-core.test.js.map +1 -1
  87. package/dist/src/pipeline/party-processor.d.ts +23 -5
  88. package/dist/src/pipeline/party-processor.d.ts.map +1 -1
  89. package/dist/src/pipeline/party-processor.js.map +1 -1
  90. package/dist/src/pipeline/pipeline.d.ts +2 -4
  91. package/dist/src/pipeline/pipeline.d.ts.map +1 -1
  92. package/dist/src/pipeline/pipeline.js +0 -3
  93. package/dist/src/pipeline/pipeline.js.map +1 -1
  94. package/dist/src/pipeline/pipeline.test.js +2 -2
  95. package/dist/src/pipeline/pipeline.test.js.map +1 -1
  96. package/dist/src/protocol/auth-plugin.d.ts +1 -1
  97. package/dist/src/protocol/auth-plugin.d.ts.map +1 -1
  98. package/dist/src/protocol/auth-plugin.js +1 -3
  99. package/dist/src/protocol/auth-plugin.js.map +1 -1
  100. package/dist/src/protocol/authenticator.d.ts +2 -2
  101. package/dist/src/protocol/authenticator.d.ts.map +1 -1
  102. package/dist/src/protocol/authenticator.js +12 -16
  103. package/dist/src/protocol/authenticator.js.map +1 -1
  104. package/dist/src/protocol/halo-recovery-plugin.d.ts +1 -1
  105. package/dist/src/protocol/halo-recovery-plugin.d.ts.map +1 -1
  106. package/dist/src/protocol/halo-recovery-plugin.js +1 -3
  107. package/dist/src/protocol/halo-recovery-plugin.js.map +1 -1
  108. package/dist/src/protocol/identity-credentials.d.ts +2 -2
  109. package/dist/src/protocol/identity-credentials.d.ts.map +1 -1
  110. package/dist/src/protocol/identity-credentials.js +4 -4
  111. package/dist/src/protocol/identity-credentials.js.map +1 -1
  112. package/dist/src/protocol/offline-invitation-plugin.d.ts +1 -1
  113. package/dist/src/protocol/offline-invitation-plugin.d.ts.map +1 -1
  114. package/dist/src/protocol/offline-invitation-plugin.js +1 -3
  115. package/dist/src/protocol/offline-invitation-plugin.js.map +1 -1
  116. package/dist/src/protocol/party-protocol-factory.d.ts +1 -14
  117. package/dist/src/protocol/party-protocol-factory.d.ts.map +1 -1
  118. package/dist/src/protocol/party-protocol-factory.js +2 -55
  119. package/dist/src/protocol/party-protocol-factory.js.map +1 -1
  120. package/dist/src/protocol/replicator-plugin.d.ts +7 -0
  121. package/dist/src/protocol/replicator-plugin.d.ts.map +1 -0
  122. package/dist/src/protocol/replicator-plugin.js +36 -0
  123. package/dist/src/protocol/replicator-plugin.js.map +1 -0
  124. package/dist/src/snapshots/snapshot-generator.d.ts +1 -1
  125. package/dist/src/snapshots/snapshot-generator.d.ts.map +1 -1
  126. package/dist/src/snapshots/snapshot-generator.js +13 -15
  127. package/dist/src/snapshots/snapshot-generator.js.map +1 -1
  128. package/dist/src/snapshots/snapshot-store.d.ts +3 -3
  129. package/dist/src/snapshots/snapshot-store.d.ts.map +1 -1
  130. package/dist/src/snapshots/snapshot-store.js +5 -5
  131. package/dist/src/snapshots/snapshot-store.js.map +1 -1
  132. package/dist/src/snapshots/snapshot-store.test.js +2 -2
  133. package/dist/src/snapshots/snapshot-store.test.js.map +1 -1
  134. package/dist/src/testing/benchmark.test.d.ts +2 -0
  135. package/dist/src/testing/benchmark.test.d.ts.map +1 -0
  136. package/dist/src/testing/benchmark.test.js +25 -0
  137. package/dist/src/testing/benchmark.test.js.map +1 -0
  138. package/dist/src/testing/testing-factories.js +2 -2
  139. package/dist/src/testing/testing-factories.js.map +1 -1
  140. package/dist/src/testing/testing.d.ts +3 -4
  141. package/dist/src/testing/testing.d.ts.map +1 -1
  142. package/dist/src/testing/testing.js +3 -4
  143. package/dist/src/testing/testing.js.map +1 -1
  144. package/dist/tsconfig.tsbuildinfo +1 -1
  145. package/package.json +21 -21
  146. package/src/api/selection/queries.ts +14 -18
  147. package/src/api/selection/selection.test.ts +4 -12
  148. package/src/api/selection/selection.ts +1 -7
  149. package/src/database/item-demuxer.ts +2 -4
  150. package/src/database/item-manager.ts +2 -2
  151. package/src/database/testing.ts +1 -1
  152. package/src/echo.ts +13 -35
  153. package/src/halo/halo-factory.ts +6 -18
  154. package/src/halo/halo-party.ts +8 -7
  155. package/src/halo/halo.test.ts +5 -4
  156. package/src/halo/identity.ts +2 -2
  157. package/src/halo/party-opener.ts +2 -2
  158. package/src/halo/preferences.ts +7 -10
  159. package/src/index.ts +0 -1
  160. package/src/invitations/greeting-protocol-provider.ts +5 -9
  161. package/src/invitations/greeting-responder.ts +10 -14
  162. package/src/invitations/invitation-factory.ts +2 -2
  163. package/src/invitations/offline-invitation-claimer.ts +5 -7
  164. package/src/parties/data-party.test.ts +17 -16
  165. package/src/parties/data-party.ts +17 -13
  166. package/src/parties/party-factory.ts +23 -69
  167. package/src/parties/party-manager.test.ts +9 -7
  168. package/src/parties/party-manager.ts +2 -1
  169. package/src/pipeline/message-selector.ts +31 -44
  170. package/src/pipeline/metadata-store.test.ts +9 -5
  171. package/src/pipeline/metadata-store.ts +5 -5
  172. package/src/pipeline/party-core.test.ts +19 -60
  173. package/src/pipeline/party-core.ts +7 -2
  174. package/src/pipeline/party-processor.ts +26 -2
  175. package/src/pipeline/pipeline.test.ts +2 -2
  176. package/src/pipeline/pipeline.ts +2 -6
  177. package/src/protocol/auth-plugin.ts +1 -3
  178. package/src/protocol/authenticator.ts +27 -31
  179. package/src/protocol/halo-recovery-plugin.ts +4 -6
  180. package/src/protocol/identity-credentials.ts +4 -4
  181. package/src/protocol/offline-invitation-plugin.ts +4 -6
  182. package/src/protocol/party-protocol-factory.ts +3 -56
  183. package/src/protocol/replicator-plugin.ts +37 -0
  184. package/src/snapshots/snapshot-generator.ts +12 -16
  185. package/src/snapshots/snapshot-store.test.ts +2 -2
  186. package/src/snapshots/snapshot-store.ts +5 -6
  187. package/src/testing/benchmark.test.ts +30 -0
  188. package/src/testing/testing-factories.ts +2 -2
  189. package/src/testing/testing.ts +4 -8
  190. package/dist/src/util/index.d.ts +0 -2
  191. package/dist/src/util/index.d.ts.map +0 -1
  192. package/dist/src/util/index.js +0 -17
  193. package/dist/src/util/index.js.map +0 -1
  194. package/dist/src/util/persistant-ram-storage.d.ts +0 -6
  195. package/dist/src/util/persistant-ram-storage.d.ts.map +0 -1
  196. package/dist/src/util/persistant-ram-storage.js +0 -32
  197. package/dist/src/util/persistant-ram-storage.js.map +0 -1
  198. package/src/util/index.ts +0 -5
  199. package/src/util/persistant-ram-storage.ts +0 -33
@@ -2,40 +2,28 @@
2
2
  //
3
3
  // Copyright 2020 DXOS.org
4
4
  //
5
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
- return c > 3 && r && Object.defineProperty(target, key, r), r;
10
- };
11
5
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
7
  };
14
8
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ReplicatorProtocolPluginFactory = exports.PartyProtocolFactory = void 0;
9
+ exports.PartyProtocolFactory = void 0;
16
10
  const debug_1 = __importDefault(require("debug"));
17
- const async_1 = require("@dxos/async");
18
11
  const crypto_1 = require("@dxos/crypto");
19
12
  const mesh_protocol_1 = require("@dxos/mesh-protocol");
20
13
  const network_manager_1 = require("@dxos/network-manager");
21
14
  const protocol_plugin_presence_1 = require("@dxos/protocol-plugin-presence");
22
- const protocol_plugin_replicator_1 = require("@dxos/protocol-plugin-replicator");
23
15
  const log = (0, debug_1.default)('dxos:echo-db:party-protocol-factory');
24
16
  /**
25
17
  * Manages the party's connection to the network swarm.
26
18
  */
27
19
  class PartyProtocolFactory {
28
- constructor(_partyKey, _networkManager, _feedProvider, _peerId, _credentials) {
20
+ constructor(_partyKey, _networkManager, _peerId, _credentials) {
29
21
  this._partyKey = _partyKey;
30
22
  this._networkManager = _networkManager;
31
- this._feedProvider = _feedProvider;
32
23
  this._peerId = _peerId;
33
24
  this._credentials = _credentials;
34
25
  this._presencePlugin = new protocol_plugin_presence_1.PresencePlugin(this._peerId.asBuffer());
35
26
  this._started = false;
36
- // Replication.
37
- this._replicatorProtocolPluginFactory =
38
- new ReplicatorProtocolPluginFactory(this._feedProvider);
39
27
  }
40
28
  async start(plugins) {
41
29
  if (this._started) {
@@ -68,7 +56,6 @@ class PartyProtocolFactory {
68
56
  }
69
57
  _createProtocol(channel, opts, extraPlugins) {
70
58
  const plugins = [
71
- ...this._replicatorProtocolPluginFactory.createPlugins(),
72
59
  ...extraPlugins,
73
60
  this._presencePlugin
74
61
  ];
@@ -103,44 +90,4 @@ class PartyProtocolFactory {
103
90
  }
104
91
  }
105
92
  exports.PartyProtocolFactory = PartyProtocolFactory;
106
- /**
107
- * Creates the protocol plugin for feed replication.
108
- */
109
- class ReplicatorProtocolPluginFactory {
110
- constructor(_feedProvider) {
111
- this._feedProvider = _feedProvider;
112
- }
113
- createPlugins() {
114
- return [
115
- new protocol_plugin_replicator_1.Replicator({
116
- load: async () => {
117
- const feeds = this._feedProvider.getFeeds();
118
- log(`Loading feeds: ${feeds.map(feed => (0, crypto_1.keyToString)(feed.key))}`);
119
- return feeds.map((feed) => ({ discoveryKey: feed.feed.discoveryKey }));
120
- },
121
- subscribe: (addFeedToReplicatedSet) => {
122
- return this._feedProvider.feedOpened.on(async (feed) => {
123
- log(`Adding feed: ${feed.key.toHex()}`);
124
- addFeedToReplicatedSet({ discoveryKey: feed.feed.discoveryKey });
125
- });
126
- },
127
- replicate: async (remoteFeeds, info) => {
128
- // We can ignore remoteFeeds entirely, since the set of feeds we want to replicate is dictated by the Party.
129
- // TODO(telackey): Why are we opening feeds? Necessary or belt/braces thinking, or because open party does it?
130
- const feeds = this._feedProvider.getFeeds();
131
- log(`Replicating: peerId=${info.session}; feeds=${feeds.map(feed => feed.key.toHex())}`);
132
- return feeds.map(feed => feed.feed);
133
- }
134
- })
135
- ];
136
- }
137
- async _openFeed(key) {
138
- const descriptor = await this._feedProvider.createOrOpenReadOnlyFeed(key);
139
- return descriptor.feed;
140
- }
141
- }
142
- __decorate([
143
- async_1.synchronized
144
- ], ReplicatorProtocolPluginFactory.prototype, "_openFeed", null);
145
- exports.ReplicatorProtocolPluginFactory = ReplicatorProtocolPluginFactory;
146
93
  //# sourceMappingURL=party-protocol-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"party-protocol-factory.js","sourceRoot":"","sources":["../../../src/protocol/party-protocol-factory.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;AAEF,kDAA0B;AAE1B,uCAA2C;AAC3C,yCAAoE;AAGpE,uDAA+C;AAC/C,2DAA6E;AAC7E,6EAAgE;AAChE,iFAA8D;AAK9D,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,qCAAqC,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAa,oBAAoB;IAM/B,YACmB,SAAmB,EACnB,eAA+B,EAC/B,aAAgC,EAChC,OAAkB,EAClB,YAAiC;QAJjC,cAAS,GAAT,SAAS,CAAU;QACnB,oBAAe,GAAf,eAAe,CAAgB;QAC/B,kBAAa,GAAb,aAAa,CAAmB;QAChC,YAAO,GAAP,OAAO,CAAW;QAClB,iBAAY,GAAZ,YAAY,CAAqB;QAVnC,oBAAe,GAAG,IAAI,yCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAGvE,aAAQ,GAAG,KAAK,CAAC;QASvB,eAAe;QACf,IAAI,CAAC,gCAAgC;YACnC,IAAI,+BAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CAAE,OAAiB;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,yDAAyD;QACzD,MAAM,cAAc,GAAG;YACrB,oBAAoB,EAAE,CAAC;YACvB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAC5C,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC;YAC3F,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,QAAQ,EAAE,IAAI,CAAC,eAAe;YAC9B,QAAQ,EAAE,IAAI,8BAAY,CAAC,cAAc,CAAC;YAC1C,KAAK,EAAE,mBAAmB,IAAI,CAAC,SAAS,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CAAE,OAAY,EAAE,IAA0B,EAAE,YAAsB;QACvF,MAAM,OAAO,GAAa;YACxB,GAAG,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE;YACxD,GAAG,YAAY;YACf,IAAI,CAAC,eAAe;SACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAAC;YAC5B,aAAa,EAAE;gBACb,IAAI,EAAE,IAAI;aACX;YAED,YAAY,EAAE,OAAO;YAErB,oBAAoB,EAAE,CAAC,EAAO,EAAE,EAAE;gBAChC,IAAI,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;oBACvD,OAAO,SAAS,CAAC;iBAClB;gBAED,gDAAgD;gBAChD,qFAAqF;gBACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAEvD,mEAAmE;gBACnE,qEAAqE;gBACrE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,CAAC;YAED,WAAW,EAAE;gBACX,0DAA0D;gBAC1D,MAAM,EAAE,IAAA,oBAAW,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5C,4GAA4G;gBAC5G,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACxD;YAED,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,QAAQ;aACL,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;aAC9D,IAAI,EAAE,CAAC;QAEV,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAhGD,oDAgGC;AAED;;GAEG;AACH,MAAa,+BAA+B;IAC1C,YACmB,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;IAChD,CAAC;IAEJ,aAAa;QACX,OAAO;YACL,IAAI,uCAAU,CAAC;gBACb,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5C,GAAG,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACzE,CAAC;gBAED,SAAS,EAAE,CAAC,sBAA2C,EAAE,EAAE;oBACzD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;wBACrD,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACxC,sBAAsB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;oBACnE,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;oBACrC,4GAA4G;oBAC5G,8GAA8G;oBAC9G,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5C,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,WAAW,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;oBACzF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC;SACH,CAAC;IACJ,CAAC;IAGO,KAAK,CAAC,SAAS,CAAE,GAAY;QACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAJC;IADC,oBAAY;gEAIZ;AApCH,0EAqCC"}
1
+ {"version":3,"file":"party-protocol-factory.js","sourceRoot":"","sources":["../../../src/protocol/party-protocol-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Replicator } from '@dxos/protocol-plugin-replicator';
2
+ import { PartyFeedProvider } from '../pipeline';
3
+ /**
4
+ * Creates the protocol plugin for feed replication.
5
+ */
6
+ export declare const createReplicatorPlugin: (feedProvider: PartyFeedProvider) => Replicator;
7
+ //# sourceMappingURL=replicator-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replicator-plugin.d.ts","sourceRoot":"","sources":["../../../src/protocol/replicator-plugin.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD;;GAEG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,iBAAiB,eAoBlE,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createReplicatorPlugin = void 0;
10
+ const debug_1 = __importDefault(require("debug"));
11
+ const crypto_1 = require("@dxos/crypto");
12
+ const protocol_plugin_replicator_1 = require("@dxos/protocol-plugin-replicator");
13
+ const log = (0, debug_1.default)('dxos:echo-db:protocol:replicator');
14
+ /**
15
+ * Creates the protocol plugin for feed replication.
16
+ */
17
+ const createReplicatorPlugin = (feedProvider) => new protocol_plugin_replicator_1.Replicator({
18
+ load: async () => {
19
+ const feeds = feedProvider.getFeeds();
20
+ log(`Loading feeds: ${feeds.map(feed => (0, crypto_1.keyToString)(feed.key))}`);
21
+ return feeds.map((feed) => ({ discoveryKey: feed.feed.discoveryKey }));
22
+ },
23
+ subscribe: (addFeedToReplicatedSet) => feedProvider.feedOpened.on(async (feed) => {
24
+ log(`Adding feed: ${feed.key.toHex()}`);
25
+ addFeedToReplicatedSet({ discoveryKey: feed.feed.discoveryKey });
26
+ }),
27
+ replicate: async (remoteFeeds, info) => {
28
+ // We can ignore remoteFeeds entirely, since the set of feeds we want to replicate is dictated by the Party.
29
+ // TODO(telackey): Why are we opening feeds? Necessary or belt/braces thinking, or because open party does it?
30
+ const feeds = feedProvider.getFeeds();
31
+ log(`Replicating: peerId=${info.session}; feeds=${feeds.map(feed => feed.key.toHex())}`);
32
+ return feeds.map(feed => feed.feed);
33
+ }
34
+ });
35
+ exports.createReplicatorPlugin = createReplicatorPlugin;
36
+ //# sourceMappingURL=replicator-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replicator-plugin.js","sourceRoot":"","sources":["../../../src/protocol/replicator-plugin.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAE1B,yCAA2C;AAC3C,iFAA8D;AAI9D,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,kCAAkC,CAAC,CAAC;AAEtD;;GAEG;AACI,MAAM,sBAAsB,GAAG,CAAC,YAA+B,EAAE,EAAE,CACxE,IAAI,uCAAU,CAAC;IACb,IAAI,EAAE,KAAK,IAAI,EAAE;QACf,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,GAAG,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,SAAS,EAAE,CAAC,sBAA2C,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACpG,GAAG,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,sBAAsB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;QACrC,4GAA4G;QAC5G,8GAA8G;QAC9G,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,WAAW,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF,CAAC,CAAC;AApBQ,QAAA,sBAAsB,0BAoB9B"}
@@ -1,5 +1,5 @@
1
1
  import { TimeframeClock } from '../database';
2
2
  import { PartyCore } from '../pipeline';
3
3
  import { SnapshotStore } from './snapshot-store';
4
- export declare function createAutomaticSnapshots(party: PartyCore, clock: TimeframeClock, store: SnapshotStore, interval: number): () => void;
4
+ export declare const createAutomaticSnapshots: (party: PartyCore, clock: TimeframeClock, store: SnapshotStore, interval: number) => () => void;
5
5
  //# sourceMappingURL=snapshot-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-generator.d.ts","sourceRoot":"","sources":["../../../src/snapshots/snapshot-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAehF"}
1
+ {"version":3,"file":"snapshot-generator.d.ts","sourceRoot":"","sources":["../../../src/snapshots/snapshot-generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,eAAO,MAAM,wBAAwB,UAAW,SAAS,SAAS,cAAc,SAAS,aAAa,YAAY,MAAM,eAYtH,CAAC"}
@@ -9,21 +9,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.createAutomaticSnapshots = void 0;
10
10
  const debug_1 = __importDefault(require("debug"));
11
11
  const log = (0, debug_1.default)('dxos:snapshot-generator');
12
- function createAutomaticSnapshots(party, clock, store, interval) {
13
- return clock.update.on(async (timeframe) => {
14
- const totalMessages = timeframe.totalMessages();
15
- if (totalMessages > 0 && totalMessages % interval === 0) {
16
- log(`Saving snapshot of ${party.key.humanize()}...`);
17
- try {
18
- const snapshot = party.createSnapshot();
19
- await store.save(snapshot);
20
- }
21
- catch (err) {
22
- console.error('Failed to save snapshot');
23
- console.error(err);
24
- }
12
+ const createAutomaticSnapshots = (party, clock, store, interval) => clock.update.on(async (timeframe) => {
13
+ const totalMessages = timeframe.totalMessages();
14
+ if (totalMessages > 0 && totalMessages % interval === 0) {
15
+ log(`Saving snapshot of ${party.key.humanize()}...`);
16
+ try {
17
+ const snapshot = party.createSnapshot();
18
+ await store.save(snapshot);
25
19
  }
26
- });
27
- }
20
+ catch (err) {
21
+ console.error('Failed to save snapshot');
22
+ console.error(err);
23
+ }
24
+ }
25
+ });
28
26
  exports.createAutomaticSnapshots = createAutomaticSnapshots;
29
27
  //# sourceMappingURL=snapshot-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-generator.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-generator.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAM1B,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC;AAE7C,SAAgB,wBAAwB,CACtC,KAAgB,EAAE,KAAqB,EAAE,KAAoB,EAAE,QAAgB;IAE/E,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE;QACvC,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;QAChD,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,QAAQ,KAAK,CAAC,EAAE;YACvD,GAAG,CAAC,sBAAsB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI;gBACF,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5B;YAAC,OAAO,GAAQ,EAAE;gBACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpB;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,4DAgBC"}
1
+ {"version":3,"file":"snapshot-generator.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-generator.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAM1B,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,yBAAyB,CAAC,CAAC;AAEtC,MAAM,wBAAwB,GAAG,CAAC,KAAgB,EAAE,KAAqB,EAAE,KAAoB,EAAE,QAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE;IAC7J,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAChD,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,QAAQ,KAAK,CAAC,EAAE;QACvD,GAAG,CAAC,sBAAsB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5B;QAAC,OAAO,GAAQ,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;KACF;AACH,CAAC,CAAC,CAAC;AAZU,QAAA,wBAAwB,4BAYlC"}
@@ -1,13 +1,13 @@
1
1
  import { PartyKey, PartySnapshot } from '@dxos/echo-protocol';
2
- import { IStorage } from '@dxos/random-access-multi-storage';
2
+ import { Directory } from '@dxos/random-access-multi-storage';
3
3
  /**
4
4
  * Stores party snapshots. Takes any `random-access-storage` compatible backend.
5
5
  *
6
6
  * Passing `ram` as a backend will make all of files temporary, effectively disabling snapshots.
7
7
  */
8
8
  export declare class SnapshotStore {
9
- private readonly _storage;
10
- constructor(_storage: IStorage);
9
+ private readonly _directory;
10
+ constructor(_directory: Directory);
11
11
  load(partyKey: PartyKey): Promise<PartySnapshot | undefined>;
12
12
  save(snapshot: PartySnapshot): Promise<void>;
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.ts"],"names":[],"mappings":"AAQA,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAG/B,IAAI,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAsB7D,IAAI,CAAE,QAAQ,EAAE,aAAa;IAYnC;;OAEG;IACG,KAAK;CAIZ"}
1
+ {"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.ts"],"names":[],"mappings":"AAQA,OAAO,EAAU,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D;;;;GAIG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,SAAS;IAGlC,IAAI,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAsB7D,IAAI,CAAE,QAAQ,EAAE,aAAa;IAYnC;;OAEG;IACG,KAAK;CAIZ"}
@@ -18,11 +18,11 @@ const log = (0, debug_1.default)('dxos:snapshot-store');
18
18
  * Passing `ram` as a backend will make all of files temporary, effectively disabling snapshots.
19
19
  */
20
20
  class SnapshotStore {
21
- constructor(_storage) {
22
- this._storage = _storage;
21
+ constructor(_directory) {
22
+ this._directory = _directory;
23
23
  }
24
24
  async load(partyKey) {
25
- const file = this._storage.createOrOpen(partyKey.toHex());
25
+ const file = this._directory.createOrOpen(partyKey.toHex());
26
26
  try {
27
27
  const { size } = await file.stat();
28
28
  if (size === 0) {
@@ -45,7 +45,7 @@ class SnapshotStore {
45
45
  }
46
46
  async save(snapshot) {
47
47
  (0, assert_1.default)(snapshot.partyKey);
48
- const file = this._storage.createOrOpen((0, crypto_1.keyToString)(snapshot.partyKey), { truncate: true, size: 0 });
48
+ const file = this._directory.createOrOpen((0, crypto_1.keyToString)(snapshot.partyKey), { truncate: true, size: 0 });
49
49
  try {
50
50
  const data = echo_protocol_1.schema.getCodecForType('dxos.echo.snapshot.PartySnapshot').encode(snapshot);
51
51
  await file.write(0, Buffer.from(data));
@@ -59,7 +59,7 @@ class SnapshotStore {
59
59
  */
60
60
  async clear() {
61
61
  log('Clearing all snapshots..');
62
- await this._storage.destroy();
62
+ await this._directory.destroy();
63
63
  }
64
64
  }
65
65
  exports.SnapshotStore = SnapshotStore;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-store.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,yCAA2C;AAC3C,uDAAsE;AAGtE,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,qBAAqB,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAa,aAAa;IACxB,YACmB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAClC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAE,QAAkB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1D,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,sBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAChF;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,SAAS,CAAC;aAClB;iBAAM;gBACL,MAAM,GAAG,CAAC;aACX;SACF;gBAAS;YACR,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,QAAuB;QACjC,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAA,oBAAW,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAErG,IAAI;YACF,MAAM,IAAI,GAAG,sBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzF,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;gBAAS;YACR,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;CACF;AA9CD,sCA8CC"}
1
+ {"version":3,"file":"snapshot-store.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,kDAA0B;AAE1B,yCAA2C;AAC3C,uDAAsE;AAGtE,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,qBAAqB,CAAC,CAAC;AACzC;;;;GAIG;AACH,MAAa,aAAa;IACxB,YACmB,UAAqB;QAArB,eAAU,GAAV,UAAU,CAAW;IACrC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAE,QAAkB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,sBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAChF;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,SAAS,CAAC;aAClB;iBAAM;gBACL,MAAM,GAAG,CAAC;aACX;SACF;gBAAS;YACR,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAE,QAAuB;QACjC,IAAA,gBAAM,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAA,oBAAW,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI;YACF,MAAM,IAAI,GAAG,sBAAM,CAAC,eAAe,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzF,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;gBAAS;YACR,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;CACF;AA9CD,sCA8CC"}
@@ -9,12 +9,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const expect_1 = __importDefault(require("expect"));
10
10
  const mocha_1 = require("mocha");
11
11
  const crypto_1 = require("@dxos/crypto");
12
- const util_1 = require("../util");
12
+ const random_access_multi_storage_1 = require("@dxos/random-access-multi-storage");
13
13
  const snapshot_store_1 = require("./snapshot-store");
14
14
  const createPublicKey = () => crypto_1.PublicKey.from((0, crypto_1.createKeyPair)().publicKey);
15
15
  describe('SnapshotStore', () => {
16
16
  (0, mocha_1.it)('in-memory', async () => {
17
- const store = new snapshot_store_1.SnapshotStore((0, util_1.createRamStorage)());
17
+ const store = new snapshot_store_1.SnapshotStore((0, random_access_multi_storage_1.createStorage)('', random_access_multi_storage_1.StorageType.RAM).directory('snapshots'));
18
18
  const key1 = createPublicKey();
19
19
  const key2 = createPublicKey();
20
20
  (0, expect_1.default)(await store.load(key1)).toBeUndefined();
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-store.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,yCAAkE;AAGlE,kCAA2C;AAC3C,qDAAiD;AAEjD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,CAAC,SAAS,CAAC,CAAC;AAExE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,UAAI,EAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAA,uBAAgB,GAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAE/B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAE/C,MAAM,QAAQ,GAAkB;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAC;wBACN,MAAM,EAAE,IAAA,iBAAQ,GAAE;wBAClB,QAAQ,EAAE,cAAc;qBACzB,CAAC;gBACF,KAAK,EAAE,EAAE;aACV;SACF,CAAC;QAEF,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"snapshot-store.test.js","sourceRoot":"","sources":["../../../src/snapshots/snapshot-store.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,oDAA4B;AAC5B,iCAAmC;AAEnC,yCAAkE;AAElE,mFAA+E;AAE/E,qDAAiD;AAEjD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,CAAC,SAAS,CAAC,CAAC;AAExE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,UAAI,EAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAE/B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAE/C,MAAM,QAAQ,GAAkB;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAC;wBACN,MAAM,EAAE,IAAA,iBAAQ,GAAE;wBAClB,QAAQ,EAAE,cAAc;qBACzB,CAAC;gBACF,KAAK,EAAE,EAAE;aACV;SACF,CAAC;QAEF,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,gBAAM,EAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=benchmark.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.test.d.ts","sourceRoot":"","sources":["../../../src/testing/benchmark.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const object_model_1 = require("@dxos/object-model");
7
+ const echo_1 = require("../echo");
8
+ const ITEMS = 100;
9
+ const MUTATIONS = 1000;
10
+ it.skip('Database benchmark', async () => {
11
+ const echo = new echo_1.ECHO({ snapshots: false });
12
+ await echo.open();
13
+ await echo.halo.createProfile();
14
+ const party = await echo.createParty();
15
+ const start = Date.now();
16
+ for (let i = 0; i < ITEMS; i++) {
17
+ const item = await party.database.createItem({ model: object_model_1.ObjectModel, type: 'test:item' });
18
+ for (let j = 0; j < MUTATIONS; j++) {
19
+ await item.model.set(`key${j % 100}`, `value-${j}`);
20
+ }
21
+ console.log(`${i * MUTATIONS}/${ITEMS * MUTATIONS} ${((Date.now() - start) / ((i + 1) * MUTATIONS / 1000)).toFixed(1)} µs/mut ${((i + 1) * MUTATIONS / (Date.now() - start) * 1000).toFixed(1)} mut/s`);
22
+ }
23
+ await echo.close();
24
+ });
25
+ //# sourceMappingURL=benchmark.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.test.js","sourceRoot":"","sources":["../../../src/testing/benchmark.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,qDAAiD;AAEjD,kCAA+B;AAE/B,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,0BAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAExF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;SACrD;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACzM;IAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC"}
@@ -11,10 +11,10 @@ const assert_1 = __importDefault(require("assert"));
11
11
  const object_model_1 = require("@dxos/object-model");
12
12
  const util_1 = require("@dxos/util");
13
13
  const testing_1 = require("./testing");
14
- function addTestMeta(obj, meta) {
14
+ const addTestMeta = (obj, meta) => {
15
15
  obj.testMeta = meta;
16
16
  return obj;
17
- }
17
+ };
18
18
  /**
19
19
  * Creates a number of test ECHO instances and a party that's shared between all of them.
20
20
  * @returns Party instances from each of the peers.
@@ -1 +1 @@
1
- {"version":3,"file":"testing-factories.js","sourceRoot":"","sources":["../../../src/testing/testing-factories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing-factories.js","sourceRoot":"","sources":["../../../src/testing/testing-factories.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAG5B,qDAAiD;AACjD,qCAAmC;AAKnC,uCAA+D;AAW/D,MAAM,WAAW,GAAG,CAAI,GAAM,EAAE,IAAc,EAAmB,EAAE;IAChE,GAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,OAAO,GAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,SAAS,GAAG,CAAC,EAAkE,EAAE;IAC5G,IAAA,gBAAM,EAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAEvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAA,YAAK,EAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAA,4BAAkB,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtG,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAE1B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACtE,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAc,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,KAAK,EACvC,OAAoD,EACQ,EAAE;;IAC9D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,MAAM,EAAE,KAAK,GAAG,0BAAW,EAAE,GAAG,OAAO,CAAC;QACxC,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,wBAAwB;QACjE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC3C,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACnC;KACF;IAED,kCAAkC;IAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YACnC,OAAO;SACR;QAED,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC,CAAC;IAEJ,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC;AA3BW,QAAA,oBAAoB,wBA2B/B"}
@@ -1,6 +1,6 @@
1
1
  import debug from 'debug';
2
2
  import { NetworkManagerOptions } from '@dxos/network-manager';
3
- import { IStorage } from '@dxos/random-access-multi-storage';
3
+ import { Storage } from '@dxos/random-access-multi-storage';
4
4
  import { ECHO } from '../echo';
5
5
  import { DataParty } from '../parties';
6
6
  export declare const log: debug.Debugger;
@@ -8,17 +8,16 @@ export declare const messageLogger: (tag: string) => (message: any) => void;
8
8
  export interface TestOptions {
9
9
  verboseLogging?: boolean;
10
10
  initialize?: boolean;
11
- storage?: any;
11
+ storage?: Storage;
12
12
  keyStorage?: any;
13
13
  networkManagerOptions?: NetworkManagerOptions;
14
14
  snapshots?: boolean;
15
15
  snapshotInterval?: number;
16
- snapshotStorage?: IStorage;
17
16
  }
18
17
  /**
19
18
  * Creates ECHO instance for testing.
20
19
  */
21
- export declare const createTestInstance: ({ verboseLogging, initialize, storage, keyStorage, networkManagerOptions, snapshotStorage, snapshots, snapshotInterval }?: TestOptions) => Promise<ECHO>;
20
+ export declare const createTestInstance: ({ verboseLogging, initialize, storage, keyStorage, networkManagerOptions, snapshots, snapshotInterval }?: TestOptions) => Promise<ECHO>;
22
21
  /**
23
22
  * Invites a test peer to the party.
24
23
  * @returns Party instance on provided test instance.
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAG7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,eAAO,MAAM,GAAG,gBAAgC,CAAC;AAEjD,eAAO,MAAM,aAAa,QAAS,MAAM,eAAe,GAAG,SAE1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,8HAS5B,WAAW,kBAkBb,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAiB,SAAS,QAAQ,IAAI,KAAG,QAAQ,SAAS,CAMpF,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAA8B,MAAM,mCAAmC,CAAC;AAGxF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,eAAO,MAAM,GAAG,gBAAgC,CAAC;AAEjD,eAAO,MAAM,aAAa,QAAS,MAAM,eAAe,GAAG,SAE1D,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAE7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,6GAQ5B,WAAW,kBAiBb,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAiB,SAAS,QAAQ,IAAI,KAAG,QAAQ,SAAS,CAMpF,CAAC"}
@@ -8,9 +8,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.inviteTestPeer = exports.createTestInstance = exports.messageLogger = exports.log = void 0;
10
10
  const debug_1 = __importDefault(require("debug"));
11
+ const random_access_multi_storage_1 = require("@dxos/random-access-multi-storage");
11
12
  const util_1 = require("@dxos/util");
12
13
  const echo_1 = require("../echo");
13
- const util_2 = require("../util");
14
14
  exports.log = (0, debug_1.default)('dxos:echo-db:testing');
15
15
  const messageLogger = (tag) => (message) => {
16
16
  (0, exports.log)(tag, JSON.stringify(message, util_1.jsonReplacer, 2));
@@ -19,11 +19,10 @@ exports.messageLogger = messageLogger;
19
19
  /**
20
20
  * Creates ECHO instance for testing.
21
21
  */
22
- const createTestInstance = async ({ verboseLogging = false, initialize = false, storage = (0, util_2.createRamStorage)(), keyStorage = undefined, networkManagerOptions, snapshotStorage = (0, util_2.createRamStorage)(), snapshots = true, snapshotInterval } = {}) => {
22
+ const createTestInstance = async ({ verboseLogging = false, initialize = false, storage = (0, random_access_multi_storage_1.createStorage)('', random_access_multi_storage_1.StorageType.RAM), keyStorage = undefined, networkManagerOptions, snapshots = true, snapshotInterval } = {}) => {
23
23
  const echo = new echo_1.ECHO({
24
- feedStorage: storage,
24
+ storage,
25
25
  keyStorage,
26
- snapshotStorage,
27
26
  snapshotInterval,
28
27
  snapshots,
29
28
  networkManagerOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAI1B,qCAA0C;AAE1C,kCAA+B;AAE/B,kCAA2C;AAE9B,QAAA,GAAG,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAE1C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAY,EAAE,EAAE;IAC7D,IAAA,WAAG,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAcF;;GAEG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,IAAA,uBAAgB,GAAE,EAC5B,UAAU,GAAG,SAAS,EACtB,qBAAqB,EACrB,eAAe,GAAG,IAAA,uBAAgB,GAAE,EACpC,SAAS,GAAG,IAAI,EAChB,gBAAgB,KACD,EAAE,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC;QACpB,WAAW,EAAE,OAAO;QACpB,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,SAAS;QACT,qBAAqB;QACrB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE;QACd,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA3BW,QAAA,kBAAkB,sBA2B7B;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,KAAgB,EAAE,IAAU,EAAsB,EAAE;IACvF,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QAChE,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;KAClC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/testing/testing.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAG1B,mFAAwF;AACxF,qCAA0C;AAE1C,kCAA+B;AAGlB,QAAA,GAAG,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAE1C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAY,EAAE,EAAE;IAC7D,IAAA,WAAG,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAaF;;GAEG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,cAAc,GAAG,KAAK,EACtB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,IAAA,2CAAa,EAAC,EAAE,EAAE,yCAAW,CAAC,GAAG,CAAC,EAC5C,UAAU,GAAG,SAAS,EACtB,qBAAqB,EACrB,SAAS,GAAG,IAAI,EAChB,gBAAgB,KACD,EAAE,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC;QACpB,OAAO;QACP,UAAU;QACV,gBAAgB;QAChB,SAAS;QACT,qBAAqB;QACrB,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE;QACd,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KACjC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAzBW,QAAA,kBAAkB,sBAyB7B;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,KAAgB,EAAE,IAAU,EAAsB,EAAE;IACvF,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;QAChE,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;KAClC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB"}