@dxos/echo-pipeline 0.8.3 → 0.8.4-main.05e74ebcff

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 (244) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/chunk-46DCRDA7.mjs +271 -0
  4. package/dist/lib/neutral/chunk-46DCRDA7.mjs.map +7 -0
  5. package/dist/lib/{browser/chunk-35I6ERLG.mjs → neutral/chunk-LR7UFVQX.mjs} +313 -709
  6. package/dist/lib/neutral/chunk-LR7UFVQX.mjs.map +7 -0
  7. package/dist/lib/{browser → neutral}/filter/index.mjs +3 -2
  8. package/dist/lib/neutral/index.mjs +7332 -0
  9. package/dist/lib/neutral/index.mjs.map +7 -0
  10. package/dist/lib/neutral/meta.json +1 -0
  11. package/dist/lib/{browser → neutral}/testing/index.mjs +90 -311
  12. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  13. package/dist/types/src/automerge/automerge-host-subduction.test.d.ts +2 -0
  14. package/dist/types/src/automerge/automerge-host-subduction.test.d.ts.map +1 -0
  15. package/dist/types/src/automerge/automerge-host.d.ts +119 -54
  16. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  17. package/dist/types/src/automerge/automerge-repo-subduction.test.d.ts +2 -0
  18. package/dist/types/src/automerge/automerge-repo-subduction.test.d.ts.map +1 -0
  19. package/dist/types/src/automerge/automerge-repo.test.d.ts +1 -1
  20. package/dist/types/src/automerge/automerge-repo.test.d.ts.map +1 -1
  21. package/dist/types/src/automerge/automerge-subduction.test.d.ts +2 -0
  22. package/dist/types/src/automerge/automerge-subduction.test.d.ts.map +1 -0
  23. package/dist/types/src/automerge/collection-synchronizer.d.ts +25 -4
  24. package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
  25. package/dist/types/src/automerge/echo-data-monitor.d.ts.map +1 -1
  26. package/dist/types/src/automerge/echo-network-adapter.d.ts +23 -10
  27. package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
  28. package/dist/types/src/automerge/echo-replicator.d.ts +46 -15
  29. package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
  30. package/dist/types/src/automerge/errors.d.ts +35 -0
  31. package/dist/types/src/automerge/errors.d.ts.map +1 -0
  32. package/dist/types/src/automerge/handle-state.d.ts +52 -0
  33. package/dist/types/src/automerge/handle-state.d.ts.map +1 -0
  34. package/dist/types/src/automerge/heads-store.d.ts +9 -2
  35. package/dist/types/src/automerge/heads-store.d.ts.map +1 -1
  36. package/dist/types/src/automerge/index.d.ts +3 -1
  37. package/dist/types/src/automerge/index.d.ts.map +1 -1
  38. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +11 -5
  39. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
  40. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +9 -8
  41. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
  42. package/dist/types/src/automerge/mesh-echo-replicator.d.ts +6 -5
  43. package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
  44. package/dist/types/src/automerge/network-protocol.d.ts.map +1 -1
  45. package/dist/types/src/automerge/space-collection.d.ts.map +1 -1
  46. package/dist/types/src/common/codec.d.ts +1 -1
  47. package/dist/types/src/common/codec.d.ts.map +1 -1
  48. package/dist/types/src/common/feeds.d.ts.map +1 -1
  49. package/dist/types/src/common/space-id.d.ts.map +1 -1
  50. package/dist/types/src/db-host/automerge-data-source.d.ts +35 -0
  51. package/dist/types/src/db-host/automerge-data-source.d.ts.map +1 -0
  52. package/dist/types/src/db-host/automerge-data-source.test.d.ts +2 -0
  53. package/dist/types/src/db-host/automerge-data-source.test.d.ts.map +1 -0
  54. package/dist/types/src/db-host/automerge-metrics.d.ts.map +1 -1
  55. package/dist/types/src/db-host/data-service.d.ts +13 -7
  56. package/dist/types/src/db-host/data-service.d.ts.map +1 -1
  57. package/dist/types/src/db-host/database-root.d.ts +9 -3
  58. package/dist/types/src/db-host/database-root.d.ts.map +1 -1
  59. package/dist/types/src/db-host/documents-synchronizer.d.ts +30 -8
  60. package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
  61. package/dist/types/src/db-host/echo-host.d.ts +74 -28
  62. package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
  63. package/dist/types/src/db-host/index.d.ts +2 -0
  64. package/dist/types/src/db-host/index.d.ts.map +1 -1
  65. package/dist/types/src/db-host/invalidation-hint.d.ts +19 -0
  66. package/dist/types/src/db-host/invalidation-hint.d.ts.map +1 -0
  67. package/dist/types/src/db-host/local-queue-service.d.ts +19 -0
  68. package/dist/types/src/db-host/local-queue-service.d.ts.map +1 -0
  69. package/dist/types/src/db-host/query-invalidation.test.d.ts +2 -0
  70. package/dist/types/src/db-host/query-invalidation.test.d.ts.map +1 -0
  71. package/dist/types/src/db-host/query-service.d.ts +19 -11
  72. package/dist/types/src/db-host/query-service.d.ts.map +1 -1
  73. package/dist/types/src/db-host/queue-data-source.d.ts +38 -0
  74. package/dist/types/src/db-host/queue-data-source.d.ts.map +1 -0
  75. package/dist/types/src/db-host/queue-service.test.d.ts +2 -0
  76. package/dist/types/src/db-host/queue-service.test.d.ts.map +1 -0
  77. package/dist/types/src/db-host/space-state-manager.d.ts +4 -3
  78. package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -1
  79. package/dist/types/src/db-host/stub.d.ts +11 -0
  80. package/dist/types/src/db-host/stub.d.ts.map +1 -0
  81. package/dist/types/src/edge/echo-edge-replicator.d.ts +10 -7
  82. package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
  83. package/dist/types/src/edge/echo-edge-subduction-replicator.d.ts +39 -0
  84. package/dist/types/src/edge/echo-edge-subduction-replicator.d.ts.map +1 -0
  85. package/dist/types/src/edge/echo-edge-subduction-replicator.test.d.ts +2 -0
  86. package/dist/types/src/edge/echo-edge-subduction-replicator.test.d.ts.map +1 -0
  87. package/dist/types/src/edge/index.d.ts +1 -0
  88. package/dist/types/src/edge/index.d.ts.map +1 -1
  89. package/dist/types/src/edge/inflight-request-limiter.d.ts.map +1 -1
  90. package/dist/types/src/filter/filter-match.d.ts +4 -1
  91. package/dist/types/src/filter/filter-match.d.ts.map +1 -1
  92. package/dist/types/src/metadata/metadata-store.d.ts +1 -1
  93. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  94. package/dist/types/src/pipeline/message-selector.d.ts.map +1 -1
  95. package/dist/types/src/pipeline/pipeline.d.ts +3 -3
  96. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  97. package/dist/types/src/pipeline/timeframe-clock.d.ts.map +1 -1
  98. package/dist/types/src/query/errors.d.ts +22 -10
  99. package/dist/types/src/query/errors.d.ts.map +1 -1
  100. package/dist/types/src/query/plan.d.ts +66 -8
  101. package/dist/types/src/query/plan.d.ts.map +1 -1
  102. package/dist/types/src/query/query-executor.d.ts +66 -11
  103. package/dist/types/src/query/query-executor.d.ts.map +1 -1
  104. package/dist/types/src/query/query-planner.d.ts +12 -1
  105. package/dist/types/src/query/query-planner.d.ts.map +1 -1
  106. package/dist/types/src/space/admission-discovery-extension.d.ts.map +1 -1
  107. package/dist/types/src/space/auth.d.ts +3 -3
  108. package/dist/types/src/space/auth.d.ts.map +1 -1
  109. package/dist/types/src/space/control-pipeline.d.ts +5 -4
  110. package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
  111. package/dist/types/src/space/space-manager.d.ts +8 -8
  112. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  113. package/dist/types/src/space/space-protocol.d.ts +10 -9
  114. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  115. package/dist/types/src/space/space.d.ts +6 -6
  116. package/dist/types/src/space/space.d.ts.map +1 -1
  117. package/dist/types/src/testing/change-metadata.d.ts.map +1 -1
  118. package/dist/types/src/testing/index.d.ts +0 -2
  119. package/dist/types/src/testing/index.d.ts.map +1 -1
  120. package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
  121. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  122. package/dist/types/src/testing/test-feed-builder.d.ts.map +1 -1
  123. package/dist/types/src/testing/test-network-adapter.d.ts +1 -1
  124. package/dist/types/src/testing/test-network-adapter.d.ts.map +1 -1
  125. package/dist/types/src/testing/test-replicator.d.ts +14 -13
  126. package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
  127. package/dist/types/src/util.d.ts +1 -1
  128. package/dist/types/src/util.d.ts.map +1 -1
  129. package/dist/types/tsconfig.tsbuildinfo +1 -1
  130. package/package.json +59 -55
  131. package/src/automerge/automerge-host-subduction.test.ts +263 -0
  132. package/src/automerge/automerge-host.test.ts +162 -39
  133. package/src/automerge/automerge-host.ts +679 -201
  134. package/src/automerge/automerge-repo-subduction.test.ts +1054 -0
  135. package/src/automerge/automerge-repo.test.ts +349 -91
  136. package/src/automerge/automerge-subduction.test.ts +330 -0
  137. package/src/automerge/collection-synchronizer.test.ts +98 -17
  138. package/src/automerge/collection-synchronizer.ts +141 -37
  139. package/src/automerge/echo-data-monitor.ts +1 -1
  140. package/src/automerge/echo-network-adapter.test.ts +5 -4
  141. package/src/automerge/echo-network-adapter.ts +76 -31
  142. package/src/automerge/echo-replicator.ts +50 -15
  143. package/src/automerge/errors.ts +10 -0
  144. package/src/automerge/handle-state.ts +62 -0
  145. package/src/automerge/heads-store.ts +42 -3
  146. package/src/automerge/index.ts +3 -1
  147. package/src/automerge/leveldb-storage-adapter.ts +77 -11
  148. package/src/automerge/mesh-echo-replicator-connection.ts +12 -8
  149. package/src/automerge/mesh-echo-replicator.ts +15 -11
  150. package/src/automerge/storage-adapter.test.ts +1 -1
  151. package/src/common/space-id.ts +1 -1
  152. package/src/db-host/automerge-data-source.test.ts +299 -0
  153. package/src/db-host/automerge-data-source.ts +187 -0
  154. package/src/db-host/data-service.ts +35 -26
  155. package/src/db-host/database-root.ts +20 -8
  156. package/src/db-host/documents-synchronizer.test.ts +145 -14
  157. package/src/db-host/documents-synchronizer.ts +163 -51
  158. package/src/db-host/echo-host.ts +384 -99
  159. package/src/db-host/index.ts +2 -0
  160. package/src/db-host/invalidation-hint.ts +50 -0
  161. package/src/db-host/local-queue-service.ts +127 -0
  162. package/src/db-host/query-invalidation.test.ts +270 -0
  163. package/src/db-host/query-service.ts +111 -106
  164. package/src/db-host/queue-data-source.ts +160 -0
  165. package/src/db-host/queue-service.test.ts +145 -0
  166. package/src/db-host/space-state-manager.ts +12 -10
  167. package/src/db-host/stub.ts +33 -0
  168. package/src/edge/echo-edge-replicator.test.ts +12 -10
  169. package/src/edge/echo-edge-replicator.ts +144 -58
  170. package/src/edge/echo-edge-subduction-replicator.test.ts +158 -0
  171. package/src/edge/echo-edge-subduction-replicator.ts +377 -0
  172. package/src/edge/index.ts +1 -0
  173. package/src/filter/filter-match.test.ts +68 -32
  174. package/src/filter/filter-match.ts +230 -21
  175. package/src/metadata/metadata-store.ts +11 -8
  176. package/src/pipeline/pipeline-stress.test.ts +1 -1
  177. package/src/pipeline/pipeline.test.ts +2 -2
  178. package/src/pipeline/pipeline.ts +9 -7
  179. package/src/query/errors.ts +3 -1
  180. package/src/query/plan.ts +84 -9
  181. package/src/query/query-executor.ts +1197 -165
  182. package/src/query/query-planner.test.ts +993 -81
  183. package/src/query/query-planner.ts +503 -27
  184. package/src/space/admission-discovery-extension.ts +3 -3
  185. package/src/space/auth.ts +6 -6
  186. package/src/space/control-pipeline.test.ts +5 -4
  187. package/src/space/control-pipeline.ts +16 -13
  188. package/src/space/space-manager.browser.test.ts +1 -1
  189. package/src/space/space-manager.ts +16 -20
  190. package/src/space/space-protocol.browser.test.ts +15 -14
  191. package/src/space/space-protocol.test.ts +15 -14
  192. package/src/space/space-protocol.ts +22 -18
  193. package/src/space/space.test.ts +3 -3
  194. package/src/space/space.ts +11 -11
  195. package/src/testing/index.ts +0 -2
  196. package/src/testing/test-agent-builder.ts +3 -3
  197. package/src/testing/test-network-adapter.ts +24 -3
  198. package/src/testing/test-replicator.ts +19 -20
  199. package/src/util.ts +7 -3
  200. package/dist/lib/browser/chunk-35I6ERLG.mjs.map +0 -7
  201. package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
  202. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-TQJTKNMS.mjs +0 -126
  204. package/dist/lib/browser/chunk-TQJTKNMS.mjs.map +0 -7
  205. package/dist/lib/browser/index.mjs +0 -4743
  206. package/dist/lib/browser/index.mjs.map +0 -7
  207. package/dist/lib/browser/meta.json +0 -1
  208. package/dist/lib/browser/testing/index.mjs.map +0 -7
  209. package/dist/lib/node/chunk-HOPOFWAL.cjs +0 -147
  210. package/dist/lib/node/chunk-HOPOFWAL.cjs.map +0 -7
  211. package/dist/lib/node/chunk-JXX6LF5U.cjs +0 -2084
  212. package/dist/lib/node/chunk-JXX6LF5U.cjs.map +0 -7
  213. package/dist/lib/node/chunk-Q7SFCCGT.cjs +0 -33
  214. package/dist/lib/node/chunk-Q7SFCCGT.cjs.map +0 -7
  215. package/dist/lib/node/filter/index.cjs +0 -32
  216. package/dist/lib/node/filter/index.cjs.map +0 -7
  217. package/dist/lib/node/index.cjs +0 -4699
  218. package/dist/lib/node/index.cjs.map +0 -7
  219. package/dist/lib/node/meta.json +0 -1
  220. package/dist/lib/node/testing/index.cjs +0 -753
  221. package/dist/lib/node/testing/index.cjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-5BHLPT24.mjs +0 -2067
  223. package/dist/lib/node-esm/chunk-5BHLPT24.mjs.map +0 -7
  224. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  225. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  226. package/dist/lib/node-esm/chunk-RVK35BS7.mjs +0 -126
  227. package/dist/lib/node-esm/chunk-RVK35BS7.mjs.map +0 -7
  228. package/dist/lib/node-esm/filter/index.mjs +0 -11
  229. package/dist/lib/node-esm/filter/index.mjs.map +0 -7
  230. package/dist/lib/node-esm/index.mjs +0 -4743
  231. package/dist/lib/node-esm/index.mjs.map +0 -7
  232. package/dist/lib/node-esm/meta.json +0 -1
  233. package/dist/lib/node-esm/testing/index.mjs +0 -742
  234. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  235. package/dist/types/src/db-host/documents-iterator.d.ts +0 -7
  236. package/dist/types/src/db-host/documents-iterator.d.ts.map +0 -1
  237. package/dist/types/src/testing/test-data.d.ts +0 -18
  238. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  239. package/dist/types/src/testing/test-schema.d.ts +0 -37
  240. package/dist/types/src/testing/test-schema.d.ts.map +0 -1
  241. package/src/db-host/documents-iterator.ts +0 -74
  242. package/src/testing/test-data.ts +0 -127
  243. package/src/testing/test-schema.ts +0 -53
  244. /package/dist/lib/{browser → neutral}/filter/index.mjs.map +0 -0
@@ -6,23 +6,15 @@ import {
6
6
  SpaceManager,
7
7
  SpaceProtocol,
8
8
  valueEncoding
9
- } from "../chunk-35I6ERLG.mjs";
10
- import {
11
- __export
12
- } from "../chunk-CGS2ULMK.mjs";
9
+ } from "../chunk-LR7UFVQX.mjs";
13
10
 
14
- // packages/core/echo/echo-pipeline/src/testing/change-metadata.ts
11
+ // src/testing/change-metadata.ts
15
12
  import { log } from "@dxos/log";
16
13
  import { schema } from "@dxos/protocols/proto";
17
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/change-metadata.ts";
14
+ var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/change-metadata.ts";
18
15
  var EchoMetadata = schema.getCodecForType("dxos.echo.metadata.EchoMetadata");
19
16
  var changeStorageVersionInMetadata = async (storage, version) => {
20
- log("Changing storage version in metadata. USE ONLY FOR TESTING.", void 0, {
21
- F: __dxlog_file,
22
- L: 19,
23
- S: void 0,
24
- C: (f, a) => f(...a)
25
- });
17
+ log("Changing storage version in metadata. USE ONLY FOR TESTING.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 13, S: void 0 });
26
18
  const metadata = new MetadataStore(storage.createDirectory("metadata"));
27
19
  await metadata.load();
28
20
  const echoMetadata = metadata.metadata;
@@ -32,7 +24,7 @@ var changeStorageVersionInMetadata = async (storage, version) => {
32
24
  await metadata._directory.flush();
33
25
  };
34
26
 
35
- // packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts
27
+ // src/testing/test-agent-builder.ts
36
28
  import { Context } from "@dxos/context";
37
29
  import { CredentialGenerator } from "@dxos/credentials";
38
30
  import { PublicKey } from "@dxos/keys";
@@ -44,7 +36,7 @@ import { Gossip, Presence } from "@dxos/teleport-extension-gossip";
44
36
  import { BlobStore } from "@dxos/teleport-extension-object-sync";
45
37
  import { ComplexMap } from "@dxos/util";
46
38
 
47
- // packages/core/echo/echo-pipeline/src/testing/test-feed-builder.ts
39
+ // src/testing/test-feed-builder.ts
48
40
  import { TestBuilder } from "@dxos/feed-store/testing";
49
41
  var TestFeedBuilder = class extends TestBuilder {
50
42
  constructor() {
@@ -54,8 +46,8 @@ var TestFeedBuilder = class extends TestBuilder {
54
46
  }
55
47
  };
56
48
 
57
- // packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts
58
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts";
49
+ // src/testing/test-agent-builder.ts
50
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-agent-builder.ts";
59
51
  var MemoryNetworkManagerProvider = (signalContext) => () => new SwarmNetworkManager({
60
52
  signalManager: new MemorySignalManager(signalContext),
61
53
  transportFactory: MemoryTransportFactory
@@ -69,8 +61,10 @@ var WebsocketNetworkManagerProvider = (signalUrl) => () => new SwarmNetworkManag
69
61
  transportFactory: createRtcTransportFactory()
70
62
  });
71
63
  var TestAgentBuilder = class {
64
+ _agents = new ComplexMap(PublicKey.hash);
65
+ _storage;
66
+ _networkManagerProvider;
72
67
  constructor({ storage, networkManagerProvider } = {}) {
73
- this._agents = new ComplexMap(PublicKey.hash);
74
68
  this._storage = storage ?? createStorage({
75
69
  type: StorageType.RAM
76
70
  });
@@ -95,9 +89,19 @@ var TestAgentBuilder = class {
95
89
  }
96
90
  };
97
91
  var TestAgent = class {
92
+ _networkManagerProvider;
93
+ _feedBuilder;
94
+ identityKey;
95
+ deviceKey;
96
+ _spaces = new ComplexMap(PublicKey.hash);
97
+ storage;
98
+ keyring;
99
+ feedStore;
100
+ _metadataStore;
98
101
  get metadataStore() {
99
102
  return this._metadataStore ??= new MetadataStore(this.storage.createDirectory("metadata"));
100
103
  }
104
+ _blobStore;
101
105
  get blobStore() {
102
106
  return this._blobStore ??= new BlobStore(this.storage.createDirectory("blobs"));
103
107
  }
@@ -106,7 +110,6 @@ var TestAgent = class {
106
110
  this._feedBuilder = _feedBuilder;
107
111
  this.identityKey = identityKey;
108
112
  this.deviceKey = deviceKey;
109
- this._spaces = new ComplexMap(PublicKey.hash);
110
113
  this.storage = this._feedBuilder.storage;
111
114
  this.keyring = this._feedBuilder.keyring;
112
115
  this.feedStore = this._feedBuilder.createFeedStore();
@@ -119,9 +122,10 @@ var TestAgent = class {
119
122
  get spaces() {
120
123
  return Array.from(this._spaces.values());
121
124
  }
122
- getSpace(spaceKey2) {
123
- return this._spaces.get(spaceKey2);
125
+ getSpace(spaceKey) {
126
+ return this._spaces.get(spaceKey);
124
127
  }
128
+ _networkManager;
125
129
  get networkManager() {
126
130
  if (this._networkManager) {
127
131
  return this._networkManager;
@@ -133,6 +137,7 @@ var TestAgent = class {
133
137
  });
134
138
  return this._networkManager;
135
139
  }
140
+ _spaceManager;
136
141
  get spaceManager() {
137
142
  return this._spaceManager ??= new SpaceManager({
138
143
  feedStore: this.feedStore,
@@ -141,10 +146,10 @@ var TestAgent = class {
141
146
  blobStore: this.blobStore
142
147
  });
143
148
  }
144
- async createSpace(identityKey = this.identityKey, spaceKey2, genesisKey, dataKey, saveMetadata = false) {
145
- if (!spaceKey2) {
149
+ async createSpace(identityKey = this.identityKey, spaceKey, genesisKey, dataKey, saveMetadata = false) {
150
+ if (!spaceKey) {
146
151
  saveMetadata = true;
147
- spaceKey2 = await this.keyring.createKey();
152
+ spaceKey = await this.keyring.createKey();
148
153
  }
149
154
  if (!genesisKey) {
150
155
  genesisKey = await this.keyring.createKey();
@@ -157,7 +162,7 @@ var TestAgent = class {
157
162
  sparse: true
158
163
  });
159
164
  const metadata = {
160
- key: spaceKey2,
165
+ key: spaceKey,
161
166
  genesisFeedKey: genesisKey,
162
167
  controlFeedKey: controlFeed.key,
163
168
  dataFeedKey: dataFeed.key
@@ -187,11 +192,8 @@ var TestAgent = class {
187
192
  });
188
193
  await space.setControlFeed(controlFeed);
189
194
  await space.setDataFeed(dataFeed);
190
- await space.open(new Context(void 0, {
191
- F: __dxlog_file2,
192
- L: 205
193
- }));
194
- this._spaces.set(spaceKey2, space);
195
+ await space.open(new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 164 }));
196
+ this._spaces.set(spaceKey, space);
195
197
  return space;
196
198
  }
197
199
  createSpaceProtocol(topic, gossip) {
@@ -242,27 +244,47 @@ var TestAgent = class {
242
244
  }
243
245
  };
244
246
 
245
- // packages/core/echo/echo-pipeline/src/testing/test-network-adapter.ts
247
+ // src/testing/test-network-adapter.ts
246
248
  import { NetworkAdapter } from "@automerge/automerge-repo";
247
249
  import { Trigger, sleep } from "@dxos/async";
248
250
  import { invariant } from "@dxos/invariant";
249
251
  import { log as log2 } from "@dxos/log";
250
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-network-adapter.ts";
252
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-network-adapter.ts";
251
253
  var TestAdapter = class _TestAdapter extends NetworkAdapter {
252
- static createPair(connectionStateProvider = () => "on") {
254
+ _params;
255
+ static createPair(connectionStateProvider = () => "on", onMessage) {
253
256
  const adapter1 = new _TestAdapter({
254
- send: (message) => connectionStateProvider() === "on" && sleep(10).then(() => adapter2.receive(message))
257
+ send: (message) => {
258
+ onMessage?.(message);
259
+ if (connectionStateProvider() === "on") {
260
+ void sleep(10).then(() => {
261
+ if (connectionStateProvider() === "on" && adapter2.peerId) {
262
+ adapter2.receive(message);
263
+ }
264
+ });
265
+ }
266
+ }
255
267
  });
256
268
  const adapter2 = new _TestAdapter({
257
- send: (message) => connectionStateProvider() === "on" && sleep(10).then(() => adapter1.receive(message))
269
+ send: (message) => {
270
+ onMessage?.(message);
271
+ if (connectionStateProvider() === "on") {
272
+ void sleep(10).then(() => {
273
+ if (connectionStateProvider() === "on" && adapter1.peerId) {
274
+ adapter1.receive(message);
275
+ }
276
+ });
277
+ }
278
+ }
258
279
  });
259
280
  return [
260
281
  adapter1,
261
282
  adapter2
262
283
  ];
263
284
  }
285
+ onConnect = new Trigger();
264
286
  constructor(_params) {
265
- super(), this._params = _params, this.onConnect = new Trigger();
287
+ super(), this._params = _params;
266
288
  }
267
289
  isReady() {
268
290
  return true;
@@ -275,30 +297,14 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
275
297
  this.onConnect.wake();
276
298
  }
277
299
  peerCandidate(peerId) {
278
- invariant(peerId, "PeerId is required", {
279
- F: __dxlog_file3,
280
- L: 45,
281
- S: this,
282
- A: [
283
- "peerId",
284
- "'PeerId is required'"
285
- ]
286
- });
300
+ invariant(peerId, "PeerId is required", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 55, S: this, A: ["peerId", "'PeerId is required'"] });
287
301
  this.emit("peer-candidate", {
288
302
  peerId,
289
303
  peerMetadata: {}
290
304
  });
291
305
  }
292
306
  peerDisconnected(peerId) {
293
- invariant(peerId, "PeerId is required", {
294
- F: __dxlog_file3,
295
- L: 50,
296
- S: this,
297
- A: [
298
- "peerId",
299
- "'PeerId is required'"
300
- ]
301
- });
307
+ invariant(peerId, "PeerId is required", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 62, S: this, A: ["peerId", "'PeerId is required'"] });
302
308
  this.emit("peer-disconnected", {
303
309
  peerId
304
310
  });
@@ -308,52 +314,39 @@ var TestAdapter = class _TestAdapter extends NetworkAdapter {
308
314
  from: message.senderId,
309
315
  to: message.targetId,
310
316
  type: message.type
311
- }, {
312
- F: __dxlog_file3,
313
- L: 55,
314
- S: this,
315
- C: (f, a) => f(...a)
316
- });
317
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 68, S: this });
317
318
  this._params.send(message);
318
319
  }
319
320
  disconnect() {
320
321
  this.peerId = void 0;
321
322
  }
322
323
  receive(message) {
323
- invariant(this.peerId, "Peer id is not set", {
324
- F: __dxlog_file3,
325
- L: 64,
326
- S: this,
327
- A: [
328
- "this.peerId",
329
- "'Peer id is not set'"
330
- ]
331
- });
324
+ invariant(this.peerId, "Peer id is not set", { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this, A: ["this.peerId", "'Peer id is not set'"] });
332
325
  this.emit("message", message);
333
326
  }
334
327
  };
335
328
 
336
- // packages/core/echo/echo-pipeline/src/testing/test-replicator.ts
329
+ // src/testing/test-replicator.ts
337
330
  import { sleep as sleep2, synchronized } from "@dxos/async";
338
331
  import { LifecycleState, Resource } from "@dxos/context";
339
332
  import { invariant as invariant2 } from "@dxos/invariant";
340
333
  import { log as log3 } from "@dxos/log";
341
- import { AutomergeReplicator } from "@dxos/teleport-extension-automerge-replicator";
334
+ import * as TeleportAutomergeReplicator from "@dxos/teleport-extension-automerge-replicator";
335
+ var __dxlog_file4 = "/__w/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-replicator.ts";
342
336
  function _ts_decorate(decorators, target, key, desc) {
343
337
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
344
338
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
345
339
  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;
346
340
  return c > 3 && r && Object.defineProperty(target, key, r), r;
347
341
  }
348
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/core/echo/echo-pipeline/src/testing/test-replicator.ts";
349
342
  var TestReplicationNetwork = class extends Resource {
343
+ _replicators = /* @__PURE__ */ new Set();
344
+ _latency = void 0;
350
345
  constructor(options = {}) {
351
346
  super();
352
- this._replicators = /* @__PURE__ */ new Set();
353
- this._latency = void 0;
354
347
  this._latency = options.latency;
355
348
  }
356
- async _close(ctx) {
349
+ async _close(_ctx) {
357
350
  for (const replicator of this._replicators) {
358
351
  for (const connection of replicator.connections) {
359
352
  void connection.writable.abort();
@@ -364,27 +357,11 @@ var TestReplicationNetwork = class extends Resource {
364
357
  async createReplicator() {
365
358
  const replicator = new TestReplicator({
366
359
  onConnect: async () => {
367
- invariant2(this._lifecycleState === LifecycleState.OPEN, void 0, {
368
- F: __dxlog_file4,
369
- L: 45,
370
- S: this,
371
- A: [
372
- "this._lifecycleState === LifecycleState.OPEN",
373
- ""
374
- ]
375
- });
360
+ invariant2(this._lifecycleState === LifecycleState.OPEN, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 33, S: this, A: ["this._lifecycleState === LifecycleState.OPEN", ""] });
376
361
  await this._connectReplicator(replicator);
377
362
  },
378
363
  onDisconnect: async () => {
379
- invariant2(this._lifecycleState === LifecycleState.OPEN, void 0, {
380
- F: __dxlog_file4,
381
- L: 49,
382
- S: this,
383
- A: [
384
- "this._lifecycleState === LifecycleState.OPEN",
385
- ""
386
- ]
387
- });
364
+ invariant2(this._lifecycleState === LifecycleState.OPEN, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 37, S: this, A: ["this._lifecycleState === LifecycleState.OPEN", ""] });
388
365
  await this._disconnectReplicator(replicator);
389
366
  }
390
367
  });
@@ -399,12 +376,7 @@ var TestReplicationNetwork = class extends Resource {
399
376
  log3("create connection", {
400
377
  from: replicator.context.peerId,
401
378
  to: otherReplicator.context.peerId
402
- }, {
403
- F: __dxlog_file4,
404
- L: 63,
405
- S: this,
406
- C: (f, a) => f(...a)
407
- });
379
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 49, S: this });
408
380
  const [connection1, connection2] = this._createConnectionPair(replicator.context.peerId, otherReplicator.context.peerId);
409
381
  await replicator.context.onConnectionOpen(connection1);
410
382
  await otherReplicator.context.onConnectionOpen(connection2);
@@ -425,12 +397,7 @@ var TestReplicationNetwork = class extends Resource {
425
397
  from: peer1,
426
398
  to: peer2,
427
399
  message
428
- }, {
429
- F: __dxlog_file4,
430
- L: 86,
431
- S: this,
432
- C: (f, a) => f(...a)
433
- });
400
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 69, S: this });
434
401
  }
435
402
  if (this._latency !== void 0) {
436
403
  await sleep2(this._latency);
@@ -445,12 +412,7 @@ var TestReplicationNetwork = class extends Resource {
445
412
  from: peer2,
446
413
  to: peer1,
447
414
  message
448
- }, {
449
- F: __dxlog_file4,
450
- L: 99,
451
- S: this,
452
- C: (f, a) => f(...a)
453
- });
415
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 84, S: this });
454
416
  }
455
417
  if (this._latency !== void 0) {
456
418
  await sleep2(this._latency);
@@ -472,21 +434,17 @@ _ts_decorate([
472
434
  synchronized
473
435
  ], TestReplicationNetwork.prototype, "_connectReplicator", null);
474
436
  var TestReplicator = class {
437
+ _params;
475
438
  constructor(_params) {
476
439
  this._params = _params;
477
- this.connected = false;
478
- this.context = void 0;
479
- this.connections = /* @__PURE__ */ new Set();
480
440
  }
481
- async connect(context) {
441
+ connected = false;
442
+ context = void 0;
443
+ connections = /* @__PURE__ */ new Set();
444
+ async connect(_ctx, context) {
482
445
  log3("connect", {
483
446
  peerId: context.peerId
484
- }, {
485
- F: __dxlog_file4,
486
- L: 131,
487
- S: this,
488
- C: (f, a) => f(...a)
489
- });
447
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 118, S: this });
490
448
  this.context = context;
491
449
  this.connected = true;
492
450
  await this._params.onConnect();
@@ -494,12 +452,7 @@ var TestReplicator = class {
494
452
  async disconnect() {
495
453
  log3("disconnect", {
496
454
  peerId: this.context.peerId
497
- }, {
498
- F: __dxlog_file4,
499
- L: 138,
500
- S: this,
501
- C: (f, a) => f(...a)
502
- });
455
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 126, S: this });
503
456
  this.connected = false;
504
457
  await this._params.onDisconnect();
505
458
  }
@@ -515,22 +468,28 @@ var TestReplicator = class {
515
468
  }
516
469
  };
517
470
  var TestReplicatorConnection = class {
471
+ peerId;
472
+ readable;
473
+ writable;
474
+ otherSide = void 0;
475
+ owningReplicator = void 0;
518
476
  constructor(peerId, readable, writable) {
519
477
  this.peerId = peerId;
520
478
  this.readable = readable;
521
479
  this.writable = writable;
522
- this.otherSide = void 0;
523
- this.owningReplicator = void 0;
524
480
  }
525
- async shouldAdvertise(params) {
481
+ get bundleSyncEnabled() {
482
+ return false;
483
+ }
484
+ async shouldAdvertise() {
526
485
  return true;
527
486
  }
528
- shouldSyncCollection(params) {
487
+ shouldSyncCollection() {
529
488
  return true;
530
489
  }
531
490
  };
532
491
  var testAutomergeReplicatorFactory = (params) => {
533
- return new AutomergeReplicator({
492
+ return new TeleportAutomergeReplicator.AutomergeReplicator({
534
493
  ...params[0],
535
494
  sendSyncRetryPolicy: {
536
495
  retryBackoff: 20,
@@ -545,195 +504,15 @@ var brokenAutomergeReplicatorFactory = (params) => {
545
504
  };
546
505
  return testAutomergeReplicatorFactory(params);
547
506
  };
548
-
549
- // packages/core/echo/echo-pipeline/src/testing/test-schema.ts
550
- var test_schema_exports = {};
551
- __export(test_schema_exports, {
552
- Organization: () => Organization,
553
- Person: () => Person,
554
- Task: () => Task,
555
- WorksFor: () => WorksFor
556
- });
557
- import { Schema } from "effect";
558
- import { Type } from "@dxos/echo";
559
- var Person = Schema.Struct({
560
- name: Schema.String,
561
- email: Schema.optional(Schema.String),
562
- age: Schema.optional(Schema.Number)
563
- }).pipe(Type.Obj({
564
- typename: "dxos.org/type/Person",
565
- version: "0.1.0"
566
- }));
567
- var Organization = Schema.Struct({
568
- name: Schema.String
569
- }).pipe(Type.Obj({
570
- typename: "dxos.org/type/Organization",
571
- version: "0.1.0"
572
- }));
573
- var WorksFor = Schema.Struct({
574
- since: Schema.String
575
- }).pipe(Type.Relation({
576
- typename: "dxos.org/type/WorksFor",
577
- version: "0.1.0",
578
- source: Person,
579
- target: Organization
580
- }));
581
- var Task = Schema.Struct({
582
- title: Schema.String,
583
- createdAt: Schema.String,
584
- assignee: Type.Ref(Person)
585
- }).pipe(Type.Obj({
586
- typename: "dxos.org/type/Task",
587
- version: "0.1.0"
588
- }));
589
-
590
- // packages/core/echo/echo-pipeline/src/testing/test-data.ts
591
- var test_data_exports = {};
592
- __export(test_data_exports, {
593
- ORGS: () => ORGS,
594
- PEOPLE: () => PEOPLE,
595
- TASKS: () => TASKS,
596
- WORKS_FOR: () => WORKS_FOR
597
- });
598
- import { DatabaseDirectory, ObjectStructure } from "@dxos/echo-protocol";
599
- import { getSchemaDXN } from "@dxos/echo-schema";
600
- import { DXN, ObjectId, PublicKey as PublicKey2 } from "@dxos/keys";
601
- var spaceKey = PublicKey2.random();
602
- var PEOPLE = {
603
- fred: DatabaseDirectory.make({
604
- spaceKey: spaceKey.toHex(),
605
- objects: {
606
- [ObjectId.random()]: ObjectStructure.makeObject({
607
- type: getSchemaDXN(Person).toString(),
608
- data: {
609
- name: "Fred"
610
- }
611
- })
612
- }
613
- }),
614
- alice: DatabaseDirectory.make({
615
- spaceKey: spaceKey.toHex(),
616
- objects: {
617
- [ObjectId.random()]: ObjectStructure.makeObject({
618
- type: getSchemaDXN(Person).toString(),
619
- data: {
620
- name: "Alice"
621
- }
622
- })
623
- }
624
- })
625
- };
626
- var ORGS = {
627
- cyberdyne: DatabaseDirectory.make({
628
- spaceKey: spaceKey.toHex(),
629
- objects: {
630
- [ObjectId.random()]: ObjectStructure.makeObject({
631
- type: getSchemaDXN(Organization).toString(),
632
- data: {
633
- name: "Cyberdyne Systems",
634
- founded: "1984"
635
- }
636
- })
637
- }
638
- }),
639
- aperture: DatabaseDirectory.make({
640
- spaceKey: spaceKey.toHex(),
641
- objects: {
642
- [ObjectId.random()]: ObjectStructure.makeObject({
643
- type: getSchemaDXN(Organization).toString(),
644
- data: {
645
- name: "Aperture Science",
646
- founded: "1953"
647
- }
648
- })
649
- }
650
- })
651
- };
652
- var WORKS_FOR = {
653
- fredWorksForCyberdyne: DatabaseDirectory.make({
654
- spaceKey: spaceKey.toHex(),
655
- objects: {
656
- [ObjectId.random()]: ObjectStructure.makeRelation({
657
- type: getSchemaDXN(WorksFor).toString(),
658
- source: {
659
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.fred.objects)[0]).toString()
660
- },
661
- target: {
662
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.cyberdyne.objects)[0]).toString()
663
- },
664
- data: {
665
- since: "2020",
666
- position: "Engineer"
667
- }
668
- })
669
- }
670
- }),
671
- aliceWorksForAperture: DatabaseDirectory.make({
672
- spaceKey: spaceKey.toHex(),
673
- objects: {
674
- [ObjectId.random()]: ObjectStructure.makeRelation({
675
- type: getSchemaDXN(WorksFor).toString(),
676
- source: {
677
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
678
- },
679
- target: {
680
- "/": DXN.fromLocalObjectId(Object.keys(ORGS.aperture.objects)[0]).toString()
681
- },
682
- data: {
683
- since: "2018",
684
- position: "Research Scientist"
685
- }
686
- })
687
- }
688
- })
689
- };
690
- var TASKS = {
691
- task1: DatabaseDirectory.make({
692
- spaceKey: spaceKey.toHex(),
693
- objects: {
694
- [ObjectId.random()]: ObjectStructure.makeObject({
695
- type: getSchemaDXN(Task).toString(),
696
- data: {
697
- title: "Complete project documentation",
698
- description: "Write comprehensive documentation for the new system",
699
- status: "in-progress",
700
- dueDate: "2023-12-31",
701
- assignee: {
702
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.fred.objects)[0]).toString()
703
- }
704
- }
705
- })
706
- }
707
- }),
708
- task2: DatabaseDirectory.make({
709
- spaceKey: spaceKey.toHex(),
710
- objects: {
711
- [ObjectId.random()]: ObjectStructure.makeObject({
712
- type: getSchemaDXN(Task).toString(),
713
- data: {
714
- title: "Run experiments",
715
- description: "Conduct series of experiments on the portal device",
716
- status: "pending",
717
- dueDate: "2023-11-15",
718
- assignee: {
719
- "/": DXN.fromLocalObjectId(Object.keys(PEOPLE.alice.objects)[0]).toString()
720
- }
721
- }
722
- })
723
- }
724
- })
725
- };
726
507
  export {
727
508
  MemoryNetworkManagerProvider,
728
509
  TestAdapter,
729
510
  TestAgent,
730
511
  TestAgentBuilder,
731
- test_data_exports as TestData,
732
512
  TestFeedBuilder,
733
513
  TestReplicationNetwork,
734
514
  TestReplicator,
735
515
  TestReplicatorConnection,
736
- test_schema_exports as TestSchema,
737
516
  WebsocketNetworkManagerProvider,
738
517
  brokenAutomergeReplicatorFactory,
739
518
  changeStorageVersionInMetadata,