@dxos/echo-pipeline 0.8.3 → 0.8.4-main.1c7ec43d41

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 (239) hide show
  1. package/dist/lib/{browser/chunk-35I6ERLG.mjs → neutral/chunk-VIHYDCCC.mjs} +313 -709
  2. package/dist/lib/neutral/chunk-VIHYDCCC.mjs.map +7 -0
  3. package/dist/lib/neutral/chunk-YBC6ONBZ.mjs +247 -0
  4. package/dist/lib/neutral/chunk-YBC6ONBZ.mjs.map +7 -0
  5. package/dist/lib/{browser → neutral}/filter/index.mjs +3 -2
  6. package/dist/lib/neutral/index.mjs +7065 -0
  7. package/dist/lib/neutral/index.mjs.map +7 -0
  8. package/dist/lib/neutral/meta.json +1 -0
  9. package/dist/lib/{browser → neutral}/testing/index.mjs +90 -311
  10. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  11. package/dist/types/src/automerge/automerge-host-subduction.test.d.ts +2 -0
  12. package/dist/types/src/automerge/automerge-host-subduction.test.d.ts.map +1 -0
  13. package/dist/types/src/automerge/automerge-host.d.ts +99 -54
  14. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  15. package/dist/types/src/automerge/automerge-repo-subduction.test.d.ts +2 -0
  16. package/dist/types/src/automerge/automerge-repo-subduction.test.d.ts.map +1 -0
  17. package/dist/types/src/automerge/automerge-repo.test.d.ts +1 -1
  18. package/dist/types/src/automerge/automerge-repo.test.d.ts.map +1 -1
  19. package/dist/types/src/automerge/automerge-subduction.test.d.ts +2 -0
  20. package/dist/types/src/automerge/automerge-subduction.test.d.ts.map +1 -0
  21. package/dist/types/src/automerge/collection-synchronizer.d.ts +25 -4
  22. package/dist/types/src/automerge/collection-synchronizer.d.ts.map +1 -1
  23. package/dist/types/src/automerge/echo-data-monitor.d.ts.map +1 -1
  24. package/dist/types/src/automerge/echo-network-adapter.d.ts +23 -10
  25. package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
  26. package/dist/types/src/automerge/echo-replicator.d.ts +38 -15
  27. package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
  28. package/dist/types/src/automerge/handle-state.d.ts +52 -0
  29. package/dist/types/src/automerge/handle-state.d.ts.map +1 -0
  30. package/dist/types/src/automerge/heads-store.d.ts +9 -2
  31. package/dist/types/src/automerge/heads-store.d.ts.map +1 -1
  32. package/dist/types/src/automerge/index.d.ts +2 -1
  33. package/dist/types/src/automerge/index.d.ts.map +1 -1
  34. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts +9 -5
  35. package/dist/types/src/automerge/leveldb-storage-adapter.d.ts.map +1 -1
  36. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +9 -8
  37. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
  38. package/dist/types/src/automerge/mesh-echo-replicator.d.ts +6 -5
  39. package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
  40. package/dist/types/src/automerge/network-protocol.d.ts.map +1 -1
  41. package/dist/types/src/automerge/space-collection.d.ts.map +1 -1
  42. package/dist/types/src/common/codec.d.ts +1 -1
  43. package/dist/types/src/common/codec.d.ts.map +1 -1
  44. package/dist/types/src/common/feeds.d.ts.map +1 -1
  45. package/dist/types/src/common/space-id.d.ts.map +1 -1
  46. package/dist/types/src/db-host/automerge-data-source.d.ts +35 -0
  47. package/dist/types/src/db-host/automerge-data-source.d.ts.map +1 -0
  48. package/dist/types/src/db-host/automerge-data-source.test.d.ts +2 -0
  49. package/dist/types/src/db-host/automerge-data-source.test.d.ts.map +1 -0
  50. package/dist/types/src/db-host/automerge-metrics.d.ts.map +1 -1
  51. package/dist/types/src/db-host/data-service.d.ts +8 -7
  52. package/dist/types/src/db-host/data-service.d.ts.map +1 -1
  53. package/dist/types/src/db-host/database-root.d.ts +9 -3
  54. package/dist/types/src/db-host/database-root.d.ts.map +1 -1
  55. package/dist/types/src/db-host/documents-synchronizer.d.ts +9 -8
  56. package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
  57. package/dist/types/src/db-host/echo-host.d.ts +62 -27
  58. package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
  59. package/dist/types/src/db-host/index.d.ts +2 -0
  60. package/dist/types/src/db-host/index.d.ts.map +1 -1
  61. package/dist/types/src/db-host/invalidation-hint.d.ts +19 -0
  62. package/dist/types/src/db-host/invalidation-hint.d.ts.map +1 -0
  63. package/dist/types/src/db-host/local-queue-service.d.ts +19 -0
  64. package/dist/types/src/db-host/local-queue-service.d.ts.map +1 -0
  65. package/dist/types/src/db-host/query-invalidation.test.d.ts +2 -0
  66. package/dist/types/src/db-host/query-invalidation.test.d.ts.map +1 -0
  67. package/dist/types/src/db-host/query-service.d.ts +19 -11
  68. package/dist/types/src/db-host/query-service.d.ts.map +1 -1
  69. package/dist/types/src/db-host/queue-data-source.d.ts +38 -0
  70. package/dist/types/src/db-host/queue-data-source.d.ts.map +1 -0
  71. package/dist/types/src/db-host/queue-service.test.d.ts +2 -0
  72. package/dist/types/src/db-host/queue-service.test.d.ts.map +1 -0
  73. package/dist/types/src/db-host/space-state-manager.d.ts +4 -3
  74. package/dist/types/src/db-host/space-state-manager.d.ts.map +1 -1
  75. package/dist/types/src/db-host/stub.d.ts +11 -0
  76. package/dist/types/src/db-host/stub.d.ts.map +1 -0
  77. package/dist/types/src/edge/echo-edge-replicator.d.ts +10 -7
  78. package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
  79. package/dist/types/src/edge/echo-edge-subduction-replicator.d.ts +39 -0
  80. package/dist/types/src/edge/echo-edge-subduction-replicator.d.ts.map +1 -0
  81. package/dist/types/src/edge/echo-edge-subduction-replicator.test.d.ts +2 -0
  82. package/dist/types/src/edge/echo-edge-subduction-replicator.test.d.ts.map +1 -0
  83. package/dist/types/src/edge/index.d.ts +1 -0
  84. package/dist/types/src/edge/index.d.ts.map +1 -1
  85. package/dist/types/src/edge/inflight-request-limiter.d.ts.map +1 -1
  86. package/dist/types/src/filter/filter-match.d.ts +4 -1
  87. package/dist/types/src/filter/filter-match.d.ts.map +1 -1
  88. package/dist/types/src/metadata/metadata-store.d.ts +1 -1
  89. package/dist/types/src/metadata/metadata-store.d.ts.map +1 -1
  90. package/dist/types/src/pipeline/message-selector.d.ts.map +1 -1
  91. package/dist/types/src/pipeline/pipeline.d.ts +3 -3
  92. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  93. package/dist/types/src/pipeline/timeframe-clock.d.ts.map +1 -1
  94. package/dist/types/src/query/errors.d.ts +22 -10
  95. package/dist/types/src/query/errors.d.ts.map +1 -1
  96. package/dist/types/src/query/plan.d.ts +66 -8
  97. package/dist/types/src/query/plan.d.ts.map +1 -1
  98. package/dist/types/src/query/query-executor.d.ts +66 -11
  99. package/dist/types/src/query/query-executor.d.ts.map +1 -1
  100. package/dist/types/src/query/query-planner.d.ts +12 -1
  101. package/dist/types/src/query/query-planner.d.ts.map +1 -1
  102. package/dist/types/src/space/admission-discovery-extension.d.ts.map +1 -1
  103. package/dist/types/src/space/auth.d.ts +3 -3
  104. package/dist/types/src/space/auth.d.ts.map +1 -1
  105. package/dist/types/src/space/control-pipeline.d.ts +5 -4
  106. package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
  107. package/dist/types/src/space/space-manager.d.ts +8 -8
  108. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  109. package/dist/types/src/space/space-protocol.d.ts +10 -9
  110. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  111. package/dist/types/src/space/space.d.ts +6 -6
  112. package/dist/types/src/space/space.d.ts.map +1 -1
  113. package/dist/types/src/testing/change-metadata.d.ts.map +1 -1
  114. package/dist/types/src/testing/index.d.ts +0 -2
  115. package/dist/types/src/testing/index.d.ts.map +1 -1
  116. package/dist/types/src/testing/test-agent-builder.d.ts +2 -2
  117. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  118. package/dist/types/src/testing/test-feed-builder.d.ts.map +1 -1
  119. package/dist/types/src/testing/test-network-adapter.d.ts +1 -1
  120. package/dist/types/src/testing/test-network-adapter.d.ts.map +1 -1
  121. package/dist/types/src/testing/test-replicator.d.ts +14 -13
  122. package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
  123. package/dist/types/src/util.d.ts +1 -1
  124. package/dist/types/src/util.d.ts.map +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +56 -54
  127. package/src/automerge/automerge-host-subduction.test.ts +247 -0
  128. package/src/automerge/automerge-host.test.ts +65 -39
  129. package/src/automerge/automerge-host.ts +589 -206
  130. package/src/automerge/automerge-repo-subduction.test.ts +1049 -0
  131. package/src/automerge/automerge-repo.test.ts +349 -91
  132. package/src/automerge/automerge-subduction.test.ts +330 -0
  133. package/src/automerge/collection-synchronizer.test.ts +53 -17
  134. package/src/automerge/collection-synchronizer.ts +119 -36
  135. package/src/automerge/echo-data-monitor.ts +1 -1
  136. package/src/automerge/echo-network-adapter.test.ts +5 -4
  137. package/src/automerge/echo-network-adapter.ts +74 -30
  138. package/src/automerge/echo-replicator.ts +41 -15
  139. package/src/automerge/handle-state.ts +62 -0
  140. package/src/automerge/heads-store.ts +42 -3
  141. package/src/automerge/index.ts +2 -1
  142. package/src/automerge/leveldb-storage-adapter.ts +40 -11
  143. package/src/automerge/mesh-echo-replicator-connection.ts +12 -8
  144. package/src/automerge/mesh-echo-replicator.ts +15 -11
  145. package/src/automerge/storage-adapter.test.ts +1 -1
  146. package/src/common/space-id.ts +1 -1
  147. package/src/db-host/automerge-data-source.test.ts +299 -0
  148. package/src/db-host/automerge-data-source.ts +187 -0
  149. package/src/db-host/data-service.ts +25 -26
  150. package/src/db-host/database-root.ts +20 -8
  151. package/src/db-host/documents-synchronizer.test.ts +143 -14
  152. package/src/db-host/documents-synchronizer.ts +72 -55
  153. package/src/db-host/echo-host.ts +348 -96
  154. package/src/db-host/index.ts +2 -0
  155. package/src/db-host/invalidation-hint.ts +50 -0
  156. package/src/db-host/local-queue-service.ts +127 -0
  157. package/src/db-host/query-invalidation.test.ts +270 -0
  158. package/src/db-host/query-service.ts +111 -106
  159. package/src/db-host/queue-data-source.ts +160 -0
  160. package/src/db-host/queue-service.test.ts +145 -0
  161. package/src/db-host/space-state-manager.ts +12 -10
  162. package/src/db-host/stub.ts +33 -0
  163. package/src/edge/echo-edge-replicator.test.ts +12 -10
  164. package/src/edge/echo-edge-replicator.ts +144 -58
  165. package/src/edge/echo-edge-subduction-replicator.test.ts +158 -0
  166. package/src/edge/echo-edge-subduction-replicator.ts +377 -0
  167. package/src/edge/index.ts +1 -0
  168. package/src/filter/filter-match.test.ts +68 -32
  169. package/src/filter/filter-match.ts +184 -20
  170. package/src/metadata/metadata-store.ts +11 -8
  171. package/src/pipeline/pipeline-stress.test.ts +1 -1
  172. package/src/pipeline/pipeline.test.ts +2 -2
  173. package/src/pipeline/pipeline.ts +9 -7
  174. package/src/query/errors.ts +3 -1
  175. package/src/query/plan.ts +82 -8
  176. package/src/query/query-executor.ts +1199 -164
  177. package/src/query/query-planner.test.ts +993 -81
  178. package/src/query/query-planner.ts +467 -27
  179. package/src/space/admission-discovery-extension.ts +3 -3
  180. package/src/space/auth.ts +6 -6
  181. package/src/space/control-pipeline.test.ts +5 -4
  182. package/src/space/control-pipeline.ts +16 -13
  183. package/src/space/space-manager.browser.test.ts +1 -1
  184. package/src/space/space-manager.ts +16 -20
  185. package/src/space/space-protocol.browser.test.ts +15 -14
  186. package/src/space/space-protocol.test.ts +15 -14
  187. package/src/space/space-protocol.ts +22 -18
  188. package/src/space/space.test.ts +3 -3
  189. package/src/space/space.ts +11 -11
  190. package/src/testing/index.ts +0 -2
  191. package/src/testing/test-agent-builder.ts +3 -3
  192. package/src/testing/test-network-adapter.ts +24 -3
  193. package/src/testing/test-replicator.ts +19 -20
  194. package/src/util.ts +7 -3
  195. package/dist/lib/browser/chunk-35I6ERLG.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
  197. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
  198. package/dist/lib/browser/chunk-TQJTKNMS.mjs +0 -126
  199. package/dist/lib/browser/chunk-TQJTKNMS.mjs.map +0 -7
  200. package/dist/lib/browser/index.mjs +0 -4743
  201. package/dist/lib/browser/index.mjs.map +0 -7
  202. package/dist/lib/browser/meta.json +0 -1
  203. package/dist/lib/browser/testing/index.mjs.map +0 -7
  204. package/dist/lib/node/chunk-HOPOFWAL.cjs +0 -147
  205. package/dist/lib/node/chunk-HOPOFWAL.cjs.map +0 -7
  206. package/dist/lib/node/chunk-JXX6LF5U.cjs +0 -2084
  207. package/dist/lib/node/chunk-JXX6LF5U.cjs.map +0 -7
  208. package/dist/lib/node/chunk-Q7SFCCGT.cjs +0 -33
  209. package/dist/lib/node/chunk-Q7SFCCGT.cjs.map +0 -7
  210. package/dist/lib/node/filter/index.cjs +0 -32
  211. package/dist/lib/node/filter/index.cjs.map +0 -7
  212. package/dist/lib/node/index.cjs +0 -4699
  213. package/dist/lib/node/index.cjs.map +0 -7
  214. package/dist/lib/node/meta.json +0 -1
  215. package/dist/lib/node/testing/index.cjs +0 -753
  216. package/dist/lib/node/testing/index.cjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-5BHLPT24.mjs +0 -2067
  218. package/dist/lib/node-esm/chunk-5BHLPT24.mjs.map +0 -7
  219. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  220. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-RVK35BS7.mjs +0 -126
  222. package/dist/lib/node-esm/chunk-RVK35BS7.mjs.map +0 -7
  223. package/dist/lib/node-esm/filter/index.mjs +0 -11
  224. package/dist/lib/node-esm/filter/index.mjs.map +0 -7
  225. package/dist/lib/node-esm/index.mjs +0 -4743
  226. package/dist/lib/node-esm/index.mjs.map +0 -7
  227. package/dist/lib/node-esm/meta.json +0 -1
  228. package/dist/lib/node-esm/testing/index.mjs +0 -742
  229. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  230. package/dist/types/src/db-host/documents-iterator.d.ts +0 -7
  231. package/dist/types/src/db-host/documents-iterator.d.ts.map +0 -1
  232. package/dist/types/src/testing/test-data.d.ts +0 -18
  233. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  234. package/dist/types/src/testing/test-schema.d.ts +0 -37
  235. package/dist/types/src/testing/test-schema.d.ts.map +0 -1
  236. package/src/db-host/documents-iterator.ts +0 -74
  237. package/src/testing/test-data.ts +0 -127
  238. package/src/testing/test-schema.ts +0 -53
  239. /package/dist/lib/{browser → neutral}/filter/index.mjs.map +0 -0
@@ -1,16 +1,19 @@
1
+ import { type Heads } from '@automerge/automerge';
2
+ import { type DocumentId } from '@automerge/automerge-repo';
3
+ import { type Context } from '@dxos/context';
1
4
  import { type PublicKey, type SpaceId } from '@dxos/keys';
2
- import type { AutomergeProtocolMessage } from '@dxos/protocols';
3
- export interface EchoReplicator {
5
+ import { type AutomergeProtocolMessage } from '@dxos/protocols';
6
+ export interface AutomergeReplicator {
4
7
  /**
5
8
  * Called on when replicator is added to EchoHost.
6
9
  */
7
- connect(context: EchoReplicatorContext): Promise<void>;
10
+ connect(ctx: Context, context: AutomergeReplicatorContext): Promise<void>;
8
11
  /**
9
12
  * Called on when replicator is removed from EchoHost.
10
13
  */
11
14
  disconnect(): Promise<void>;
12
15
  }
13
- export interface EchoReplicatorContext {
16
+ export interface AutomergeReplicatorContext {
14
17
  /**
15
18
  * Our own peer id.
16
19
  */
@@ -20,14 +23,17 @@ export interface EchoReplicatorContext {
20
23
  */
21
24
  getContainingSpaceForDocument(documentId: string): Promise<PublicKey | null>;
22
25
  getContainingSpaceIdForDocument(documentId: string): Promise<SpaceId | null>;
23
- isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckParams): Promise<boolean>;
24
- onConnectionOpen(connection: ReplicatorConnection): void;
25
- onConnectionClosed(connection: ReplicatorConnection): void;
26
- onConnectionAuthScopeChanged(connection: ReplicatorConnection): void;
26
+ /**
27
+ * Returns false if collection sync hasn't happened yet.
28
+ */
29
+ isDocumentInRemoteCollection(params: RemoteDocumentExistenceCheckProps): Promise<boolean>;
30
+ onConnectionOpen(connection: AutomergeReplicatorConnection): void;
31
+ onConnectionClosed(connection: AutomergeReplicatorConnection): void;
32
+ onConnectionAuthScopeChanged(connection: AutomergeReplicatorConnection): void;
27
33
  }
28
- export interface ReplicatorConnection {
34
+ export interface AutomergeReplicatorConnection {
29
35
  /**
30
- * Remove peer id.
36
+ * Remote peer id.
31
37
  */
32
38
  get peerId(): string;
33
39
  /**
@@ -42,19 +48,36 @@ export interface ReplicatorConnection {
42
48
  * @returns true if the document should be advertised to this peer.
43
49
  * The remote peer can still request the document by its id bypassing this check.
44
50
  */
45
- shouldAdvertise(params: ShouldAdvertiseParams): Promise<boolean>;
51
+ shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
46
52
  /**
47
53
  * @returns true if the collection should be synced to this peer.
48
54
  */
49
- shouldSyncCollection(params: ShouldSyncCollectionParams): boolean;
55
+ shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
56
+ /**
57
+ * Batch syncing considered enabled if AutomergeReplicatorConnection implements `pushBatch` and `pullBatch` methods.
58
+ * @returns true if the batch syncing is enabled.
59
+ */
60
+ get bundleSyncEnabled(): boolean;
61
+ /**
62
+ * Pushes the batch of documents to the remote peer.
63
+ */
64
+ pushBundle?(ctx: Context, bundle: {
65
+ documentId: DocumentId;
66
+ data: Uint8Array;
67
+ heads: Heads;
68
+ }[]): Promise<void>;
69
+ /**
70
+ * Pulls the batch of documents from the remote peer.
71
+ */
72
+ pullBundle?(ctx: Context, docHeads: Record<DocumentId, Heads>): Promise<Record<DocumentId, Uint8Array>>;
50
73
  }
51
- export type ShouldAdvertiseParams = {
74
+ export type ShouldAdvertiseProps = {
52
75
  documentId: string;
53
76
  };
54
- export type ShouldSyncCollectionParams = {
77
+ export type ShouldSyncCollectionProps = {
55
78
  collectionId: string;
56
79
  };
57
- export type RemoteDocumentExistenceCheckParams = {
80
+ export type RemoteDocumentExistenceCheckProps = {
58
81
  peerId: string;
59
82
  documentId: string;
60
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7E,4BAA4B,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3F,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzD,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC;CACnE;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGhE,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7E,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,4BAA4B,CAAC,MAAM,EAAE,iCAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F,gBAAgB,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAClE,kBAAkB,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpE,4BAA4B,CAAC,UAAU,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAEnD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAEjE;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/G;;OAEG;IAEH,UAAU,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CACzG;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type DocumentId, type QueryState, type Repo } from '@automerge/automerge-repo';
2
+ /**
3
+ * Variants reported by {@link QueryState}: `'loading' | 'ready' | 'unavailable' | 'failed'`.
4
+ */
5
+ export type HandleQueryState = QueryState<unknown>['state'];
6
+ /**
7
+ * Returns the {@link QueryState} variant for a document already known to the
8
+ * repo (i.e. one for which a handle has been registered via `Repo.find` /
9
+ * `Repo.findWithProgress` / `Repo.create`), or `undefined` if no handle/query
10
+ * exists for this document yet.
11
+ *
12
+ * Use this anywhere you need to ask "is this document loaded?" / "did sync
13
+ * give up?" — read the result against the {@link HandleQueryState} variants
14
+ * (e.g. `=== 'ready'`).
15
+ *
16
+ * # Why we can't just call `DocHandle.isReady()` / read `DocHandle.state`
17
+ *
18
+ * The current subduction fork of `@automerge/automerge-repo`
19
+ * (`2.6.0-subduction.10`) **gutted** the per-handle state machine. Inside the
20
+ * fork, every `DocHandle` state predicate is a constant placeholder:
21
+ *
22
+ * ```
23
+ * isReady = () => true
24
+ * isUnloaded = () => false
25
+ * isDeleted = () => false
26
+ * isUnavailable = () => false
27
+ * inState = (states) => states.includes('ready')
28
+ * get state = () => 'ready'
29
+ * whenReady = async () => {} // resolves immediately, ignores argument
30
+ * ```
31
+ *
32
+ * That means `handle.isReady()` always lies "yes", `handle.state` always reads
33
+ * `'ready'`, and `await handle.whenReady()` never blocks — even for handles
34
+ * whose document has never been loaded from storage or synced from a peer.
35
+ * Reading `handle.doc()` on such a "ready" handle returns the empty initial
36
+ * doc (`A.init()` or `A.emptyChange(A.init())`) rather than throwing or
37
+ * returning undefined, which can silently corrupt downstream logic that
38
+ * trusted the handle's `isReady()` signal.
39
+ *
40
+ * Real liveness moved to the {@link DocumentQuery} returned by
41
+ * `Repo.findWithProgress`, whose state goes through
42
+ * `'loading' → 'ready' | 'unavailable' | 'failed'`. Production code that
43
+ * needs to know whether a document is actually loaded must consult the query
44
+ * state through this helper instead of any `DocHandle.*` predicate.
45
+ *
46
+ * TODO(mykola): Remove this helper once the fork either (a) restores the
47
+ * `DocHandle` state machine, or (b) every caller is migrated to query
48
+ * `DocumentProgress` directly with a richer API surface (await on state
49
+ * transitions, etc.).
50
+ */
51
+ export declare const getHandleState: (repo: Repo, documentId: DocumentId) => HandleQueryState | undefined;
52
+ //# sourceMappingURL=handle-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-state.d.ts","sourceRoot":"","sources":["../../../../src/automerge/handle-state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,cAAc,UAAU,KAAG,gBAAgB,GAAG,SAKtF,CAAC"}
@@ -1,13 +1,20 @@
1
1
  import type { Heads } from '@automerge/automerge';
2
2
  import type { DocumentId } from '@automerge/automerge-repo';
3
3
  import type { BatchLevel, SublevelDB } from '@dxos/kv-store';
4
- export type HeadsStoreParams = {
4
+ export type HeadsStoreProps = {
5
5
  db: SublevelDB;
6
6
  };
7
7
  export declare class HeadsStore {
8
8
  private readonly _db;
9
- constructor({ db }: HeadsStoreParams);
9
+ constructor({ db }: HeadsStoreProps);
10
10
  setHeads(documentId: DocumentId, heads: Heads, batch: BatchLevel): void;
11
11
  getHeads(documentIds: DocumentId[]): Promise<Array<Heads | undefined>>;
12
+ /**
13
+ * Iterate over all document IDs and their heads.
14
+ */
15
+ iterateAll(): AsyncGenerator<{
16
+ documentId: DocumentId;
17
+ heads: Heads;
18
+ }>;
12
19
  }
13
20
  //# sourceMappingURL=heads-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,EAAE,EAAE,EAAE,EAAE,gBAAgB;IAIpC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IASjE,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;CAM7E"}
1
+ {"version":3,"file":"heads-store.d.ts","sourceRoot":"","sources":["../../../../src/automerge/heads-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4B7D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IAEjC,YAAY,EAAE,EAAE,EAAE,EAAE,eAAe,EAElC;IAED,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAMtE;IAGK,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAK3E;IAED;;OAEG;IACI,UAAU,IAAI,cAAc,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAO5E;CACF"}
@@ -1,7 +1,8 @@
1
1
  export * from './automerge-host';
2
+ export * from './handle-state';
2
3
  export * from './leveldb-storage-adapter';
3
4
  export * from './mesh-echo-replicator';
4
- export * from './echo-replicator';
5
+ export type * from './echo-replicator';
5
6
  export { diffCollectionState } from './collection-synchronizer';
6
7
  export * from './space-collection';
7
8
  export * from './echo-data-monitor';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/automerge/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type StorageAdapterInterface, type Chunk, type StorageKey } from '@automerge/automerge-repo';
1
+ import { type Chunk, type StorageAdapterInterface, type StorageKey } from '@automerge/automerge-repo';
2
2
  import { type MixedEncoding } from 'level-transcoder';
3
3
  import { Resource } from '@dxos/context';
4
4
  import { type BatchLevel, type SublevelDB } from '@dxos/kv-store';
@@ -9,24 +9,28 @@ export interface StorageAdapterDataMonitor {
9
9
  recordLoadDuration(durationMs: number): void;
10
10
  recordStoreDuration(durationMs: number): void;
11
11
  }
12
- export type LevelDBStorageAdapterParams = {
12
+ export type LevelDBStorageAdapterProps = {
13
13
  db: SublevelDB;
14
14
  callbacks?: StorageCallbacks;
15
15
  monitor?: StorageAdapterDataMonitor;
16
16
  };
17
- export type BeforeSaveParams = {
17
+ export type BeforeSaveProps = {
18
18
  path: StorageKey;
19
19
  batch: BatchLevel;
20
20
  };
21
21
  export interface StorageCallbacks {
22
- beforeSave(params: BeforeSaveParams): MaybePromise<void>;
22
+ beforeSave(params: BeforeSaveProps): MaybePromise<void>;
23
23
  afterSave(path: StorageKey): MaybePromise<void>;
24
24
  }
25
25
  export declare class LevelDBStorageAdapter extends Resource implements StorageAdapterInterface {
26
26
  private readonly _params;
27
- constructor(_params: LevelDBStorageAdapterParams);
27
+ constructor(_params: LevelDBStorageAdapterProps);
28
28
  load(keyArray: StorageKey): Promise<Uint8Array | undefined>;
29
29
  save(keyArray: StorageKey, binary: Uint8Array): Promise<void>;
30
+ /**
31
+ * Atomically persist multiple key/value entries in a single LevelDB batch write.
32
+ */
33
+ saveBatch(entries: Array<[StorageKey, Uint8Array]>): Promise<void>;
30
34
  remove(keyArray: StorageKey): Promise<void>;
31
35
  loadRange(keyPrefix: StorageKey): Promise<Chunk[]>;
32
36
  removeRange(keyPrefix: StorageKey): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAkB,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,qBAAsB,SAAQ,QAAS,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,2BAA2B;IAI3D,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmB3D,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7D,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqBlD,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD;AAaD,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
1
+ {"version":3,"file":"leveldb-storage-adapter.d.ts","sourceRoot":"","sources":["../../../../src/automerge/leveldb-storage-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,uBAAuB,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,qBAAsB,SAAQ,QAAS,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,0BAA0B,EAE/D;IAEK,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAiBhE;IAEK,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlE;IAED;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBvE;IAEK,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhD;IAEK,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAmBvD;IAEK,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CActD;CACF;AAaD,eAAO,MAAM,eAAe;IAC1B,WAAW;IACX,aAAa;CACd,CAAC"}
@@ -2,16 +2,16 @@ import { Resource } from '@dxos/context';
2
2
  import { type PublicKey } from '@dxos/keys';
3
3
  import type { AutomergeProtocolMessage } from '@dxos/protocols';
4
4
  import { AutomergeReplicator, type AutomergeReplicatorFactory } from '@dxos/teleport-extension-automerge-replicator';
5
- import type { ReplicatorConnection, ShouldAdvertiseParams, ShouldSyncCollectionParams } from './echo-replicator';
6
- export type MeshReplicatorConnectionParams = {
5
+ import type { AutomergeReplicatorConnection, ShouldAdvertiseProps, ShouldSyncCollectionProps } from './echo-replicator';
6
+ export type MeshReplicatorConnectionProps = {
7
7
  ownPeerId: string;
8
8
  onRemoteConnected: () => void;
9
9
  onRemoteDisconnected: () => void;
10
- shouldAdvertise: (params: ShouldAdvertiseParams) => Promise<boolean>;
11
- shouldSyncCollection: (params: ShouldSyncCollectionParams) => boolean;
10
+ shouldAdvertise: (params: ShouldAdvertiseProps) => Promise<boolean>;
11
+ shouldSyncCollection: (params: ShouldSyncCollectionProps) => boolean;
12
12
  replicatorFactory?: AutomergeReplicatorFactory;
13
13
  };
14
- export declare class MeshReplicatorConnection extends Resource implements ReplicatorConnection {
14
+ export declare class MeshReplicatorConnection extends Resource implements AutomergeReplicatorConnection {
15
15
  private readonly _params;
16
16
  readable: ReadableStream<AutomergeProtocolMessage>;
17
17
  writable: WritableStream<AutomergeProtocolMessage>;
@@ -19,12 +19,13 @@ export declare class MeshReplicatorConnection extends Resource implements Replic
19
19
  readonly replicatorExtension: AutomergeReplicator;
20
20
  private _remotePeerId;
21
21
  private _isEnabled;
22
- constructor(_params: MeshReplicatorConnectionParams);
22
+ constructor(_params: MeshReplicatorConnectionProps);
23
23
  private _disconnectIfEnabled;
24
24
  get peerId(): string;
25
25
  get isEnabled(): boolean;
26
- shouldAdvertise(params: ShouldAdvertiseParams): Promise<boolean>;
27
- shouldSyncCollection(params: ShouldSyncCollectionParams): boolean;
26
+ get bundleSyncEnabled(): boolean;
27
+ shouldAdvertise(params: ShouldAdvertiseProps): Promise<boolean>;
28
+ shouldSyncCollection(params: ShouldSyncCollectionProps): boolean;
28
29
  /**
29
30
  * Start exchanging messages with the remote peer.
30
31
  * Call after the remote peer has connected.
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-echo-replicator-connection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator-connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAErH,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAIjH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,oBAAoB,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC;IACtE,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;CAChD,CAAC;AAEF,qBAAa,wBAAyB,SAAQ,QAAS,YAAW,oBAAoB;IAUxE,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT7B,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,eAAe,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEhD,SAAgB,mBAAmB,EAAE,mBAAmB,CAAC;IAEzD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;gBAEE,OAAO,EAAE,8BAA8B;IA6DpE,OAAO,CAAC,oBAAoB;IAM5B,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,SAAS,YAEZ;IAEK,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItE,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO;IAIjE;;;OAGG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"mesh-echo-replicator-connection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator-connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAErH,OAAO,KAAK,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAIxH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,eAAe,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,oBAAoB,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,OAAO,CAAC;IACrE,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;CAChD,CAAC;AAEF,qBAAa,wBAAyB,SAAQ,QAAS,YAAW,6BAA6B;IAUjF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT7B,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,QAAQ,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACnD,eAAe,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEhD,SAAgB,mBAAmB,EAAE,mBAAmB,CAAC;IAEzD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAS;IAE3B,YAA6B,OAAO,EAAE,6BAA6B,EA2DlE;IAED,OAAO,CAAC,oBAAoB;IAM5B,IAAI,MAAM,IAAI,MAAM,CAGnB;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAEK,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;IAED,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAE/D;IAED;;;OAGG;IACH,MAAM,IAAI,IAAI,CAGb;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAEd;CACF"}
@@ -1,10 +1,11 @@
1
+ import { type Context } from '@dxos/context';
1
2
  import { PublicKey } from '@dxos/keys';
2
- import { type AutomergeReplicator, type AutomergeReplicatorFactory } from '@dxos/teleport-extension-automerge-replicator';
3
- import { type EchoReplicator, type EchoReplicatorContext } from './echo-replicator';
3
+ import type * as TeleportAutomergeReplicator from '@dxos/teleport-extension-automerge-replicator';
4
+ import { type AutomergeReplicator, type AutomergeReplicatorContext } from './echo-replicator';
4
5
  /**
5
6
  * Used to replicate with other peers over the network.
6
7
  */
7
- export declare class MeshEchoReplicator implements EchoReplicator {
8
+ export declare class MeshEchoReplicator implements AutomergeReplicator {
8
9
  /**
9
10
  * We might have multiple connections open with a peer (one per space), but there'll be only one enabled
10
11
  * connection at any given moment, because there's a single repo for all the spaces.
@@ -21,9 +22,9 @@ export declare class MeshEchoReplicator implements EchoReplicator {
21
22
  */
22
23
  private readonly _authorizedDevices;
23
24
  private _context;
24
- connect(context: EchoReplicatorContext): Promise<void>;
25
+ connect(_ctx: Context, context: AutomergeReplicatorContext): Promise<void>;
25
26
  disconnect(): Promise<void>;
26
- createExtension(extensionFactory?: AutomergeReplicatorFactory): AutomergeReplicator;
27
+ createExtension(extensionFactory?: TeleportAutomergeReplicator.AutomergeReplicatorFactory): TeleportAutomergeReplicator.AutomergeReplicator;
27
28
  authorizeDevice(spaceKey: PublicKey, deviceKey: PublicKey): Promise<void>;
28
29
  }
29
30
  //# sourceMappingURL=mesh-echo-replicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAErD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAChC,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAA8B,MAAM,mBAAmB,CAAC;AAOhH;;GAEG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAiD;IACrF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAEpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAEhF,OAAO,CAAC,QAAQ,CAAsC;IAEhD,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,eAAe,CAAC,gBAAgB,CAAC,EAAE,0BAA0B,GAAG,mBAAmB;IAsH7E,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhF"}
1
+ {"version":3,"file":"mesh-echo-replicator.d.ts","sourceRoot":"","sources":["../../../../src/automerge/mesh-echo-replicator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAgB,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,KAAK,2BAA2B,MAAM,+CAA+C,CAAC;AAIlG,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAEhC,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAiD;IACrF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAEpE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAEhF,OAAO,CAAC,QAAQ,CAA2C;IAErD,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAehC;IAED,eAAe,CACb,gBAAgB,CAAC,EAAE,2BAA2B,CAAC,0BAA0B,GACxE,2BAA2B,CAAC,mBAAmB,CAoHjD;IAEK,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9E;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"network-protocol.d.ts","sourceRoot":"","sources":["../../../../src/automerge/network-protocol.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,CAAC;AAEpE,eAAO,MAAM,wBAAwB,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,sBACvB,CAAC;AAEjD,eAAO,MAAM,wBAAwB,GAAI,SAAS,OAAO,KAAG,OAAO,IAAI,sBACvB,CAAC"}
1
+ {"version":3,"file":"network-protocol.d.ts","sourceRoot":"","sources":["../../../../src/automerge/network-protocol.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,CAAC;AAEpE,eAAO,MAAM,wBAAwB,YAAa,OAAO,KAAG,OAAO,IAAI,sBACvB,CAAC;AAEjD,eAAO,MAAM,wBAAwB,YAAa,OAAO,KAAG,OAAO,IAAI,sBACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"space-collection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/space-collection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,6BAA6B,GAAI,SAAS,OAAO,EAAE,iBAAiB,UAAU,KAAG,YACA,CAAC;AAE/F,eAAO,MAAM,0BAA0B,GAAI,cAAc,YAAY,KAAG,OAIvE,CAAC"}
1
+ {"version":3,"file":"space-collection.d.ts","sourceRoot":"","sources":["../../../../src/automerge/space-collection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,6BAA6B,YAAa,OAAO,mBAAmB,UAAU,KAAG,YACA,CAAC;AAE/F,eAAO,MAAM,0BAA0B,iBAAkB,YAAY,KAAG,OAIvE,CAAC"}
@@ -7,5 +7,5 @@ export declare const codec: Codec<FeedMessage>;
7
7
  /**
8
8
  * Value encoding used by feed store.
9
9
  */
10
- export declare const valueEncoding: import("hypercore").AbstractValueEncoding<FeedMessage>;
10
+ export declare const valueEncoding: import("@dxos/vendor-hypercore/hypercore").AbstractValueEncoding<FeedMessage>;
11
11
  //# sourceMappingURL=codec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../../src/common/codec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,CAAwD,CAAC;AAE9F;;GAEG;AACH,eAAO,MAAM,aAAa,wDAA6B,CAAC"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../../src/common/codec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW,CAAwD,CAAC;AAE9F;;GAEG;AACH,eAAO,MAAM,aAAa,+EAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/common/feeds.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,EAAE,EAAE,MAAM,SAAS,EAAE,EACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,EAC7C,QAAQ,UAAU,CAAC,MAAM,CAAC,KACzB,UAAU,CAAC,MAAM,CAOnB,CAAC"}
1
+ {"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/common/feeds.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,EAAE,EAAE,MAAM,SAAS,EAAE,UACjE,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,UACrC,UAAU,CAAC,MAAM,CAAC,KACzB,UAAU,CAAC,MAAM,CAOnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"space-id.d.ts","sourceRoot":"","sources":["../../../../src/common/space-id.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKhD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAU,UAAU,SAAS,KAAG,OAAO,CAAC,OAAO,CAY/E,CAAC"}
1
+ {"version":3,"file":"space-id.d.ts","sourceRoot":"","sources":["../../../../src/common/space-id.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKhD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,aAAoB,SAAS,KAAG,OAAO,CAAC,OAAO,CAY/E,CAAC"}
@@ -0,0 +1,35 @@
1
+ import * as A from '@automerge/automerge';
2
+ import * as Effect from 'effect/Effect';
3
+ import { type Context } from '@dxos/context';
4
+ import { type DataSourceCursor, type IndexDataSource, type IndexerObject } from '@dxos/index-core';
5
+ import { type AutomergeHost } from '../automerge';
6
+ /**
7
+ * Codec for serializing/deserializing Automerge heads to cursor strings.
8
+ */
9
+ export declare const headsCodec: {
10
+ /**
11
+ * Serialize automerge heads to a cursor string.
12
+ * Heads are sorted to ensure consistent comparison.
13
+ */
14
+ encode: (heads: A.Heads) => string;
15
+ /**
16
+ * Deserialize a cursor string back to heads array.
17
+ */
18
+ decode: (cursor: string) => string[];
19
+ };
20
+ /**
21
+ * Data source that fetches objects from AutomergeHost.
22
+ * Iterates all documents from HeadsStore and tracks document heads as cursors to detect changes.
23
+ */
24
+ export declare class AutomergeDataSource implements IndexDataSource {
25
+ #private;
26
+ readonly sourceName = "automerge";
27
+ constructor(automergeHost: AutomergeHost);
28
+ getChangedObjects(ctx: Context, cursors: DataSourceCursor[], opts?: {
29
+ limit?: number;
30
+ }): Effect.Effect<{
31
+ objects: IndexerObject[];
32
+ cursors: DataSourceCursor[];
33
+ }>;
34
+ }
35
+ //# sourceMappingURL=automerge-data-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automerge-data-source.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-data-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAInG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAKlD;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;;OAGG;IACH,MAAM,UAAU,CAAC,CAAC,KAAK,KAAG,MAAM;IAEhC;;OAEG;IACH,MAAM,WAAW,MAAM,KAAG,MAAM,EAAE;CACnC,CAAC;AAYF;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,eAAe;;IACzD,QAAQ,CAAC,UAAU,eAAe;IAIlC,YAAY,aAAa,EAAE,aAAa,EAEvC;IAED,iBAAiB,CACf,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,gBAAgB,EAAE,EAC3B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAqF1E;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=automerge-data-source.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automerge-data-source.test.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-data-source.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"automerge-metrics.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-metrics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAI1C,MAAM,MAAM,UAAU,GAAG;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,UAqBnD,CAAC"}
1
+ {"version":3,"file":"automerge-metrics.d.ts","sourceRoot":"","sources":["../../../../src/db-host/automerge-metrics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAI1C,MAAM,MAAM,UAAU,GAAG;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,UAqBnD,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type RequestOptions } from '@dxos/codec-protobuf';
2
2
  import { Stream } from '@dxos/codec-protobuf/stream';
3
- import { type DataService, type FlushRequest, type SubscribeRequest, type BatchedDocumentUpdates, type UpdateSubscriptionRequest, type GetDocumentHeadsRequest, type GetDocumentHeadsResponse, type ReIndexHeadsRequest, type WaitUntilHeadsReplicatedRequest, type UpdateRequest, type GetSpaceSyncStateRequest, type SpaceSyncState } from '@dxos/protocols/proto/dxos/echo/service';
4
- import { type SpaceStateManager } from './space-state-manager';
3
+ import { type BatchedDocumentUpdates, type CreateDocumentRequest, type CreateDocumentResponse, type DataService, type FlushRequest, type GetDocumentHeadsRequest, type GetDocumentHeadsResponse, type GetSpaceSyncStateRequest, type ReIndexHeadsRequest, type SpaceSyncState, type SubscribeRequest, type UpdateRequest, type UpdateSubscriptionRequest, type WaitUntilHeadsReplicatedRequest } from '@dxos/protocols/proto/dxos/echo/service';
5
4
  import { type AutomergeHost } from '../automerge';
6
- export type DataServiceParams = {
5
+ import { type SpaceStateManager } from './space-state-manager';
6
+ export type DataServiceProps = {
7
7
  automergeHost: AutomergeHost;
8
8
  spaceStateManager: SpaceStateManager;
9
9
  updateIndexes: () => Promise<void>;
@@ -20,14 +20,15 @@ export declare class DataServiceImpl implements DataService {
20
20
  private readonly _automergeHost;
21
21
  private readonly _spaceStateManager;
22
22
  private readonly _updateIndexes;
23
- constructor(params: DataServiceParams);
23
+ constructor(params: DataServiceProps);
24
24
  subscribe(request: SubscribeRequest): Stream<BatchedDocumentUpdates>;
25
25
  updateSubscription(request: UpdateSubscriptionRequest): Promise<void>;
26
- update(request: UpdateRequest): Promise<void>;
27
- flush(request: FlushRequest): Promise<void>;
26
+ createDocument(request: CreateDocumentRequest): Promise<CreateDocumentResponse>;
27
+ update(request: UpdateRequest, options?: RequestOptions): Promise<void>;
28
+ flush(request: FlushRequest, options?: RequestOptions): Promise<void>;
28
29
  getDocumentHeads(request: GetDocumentHeadsRequest): Promise<GetDocumentHeadsResponse>;
29
30
  waitUntilHeadsReplicated(request: WaitUntilHeadsReplicatedRequest, options?: RequestOptions | undefined): Promise<void>;
30
- reIndexHeads(request: ReIndexHeadsRequest, options?: RequestOptions): Promise<void>;
31
+ reIndexHeads(request: ReIndexHeadsRequest, _options?: RequestOptions): Promise<void>;
31
32
  updateIndexes(): Promise<void>;
32
33
  subscribeSpaceSyncState(request: GetSpaceSyncStateRequest): Stream<SpaceSyncState>;
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/data-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIrD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACpB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AAEH,qBAAa,eAAgB,YAAW,WAAW;IACjD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAE3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAEzC,MAAM,EAAE,iBAAiB;IAMrC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAiB9D,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAarF,wBAAwB,CAC5B,OAAO,EAAE,+BAA+B,EACxC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,GACnC,OAAO,CAAC,IAAI,CAAC;IAIV,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAInF,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAAC,cAAc,CAAC;CAsCnF"}
1
+ {"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../../../../src/db-host/data-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAKrD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACrC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AAEH,qBAAa,eAAgB,YAAW,WAAW;IACjD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAE3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IAErD,YAAY,MAAM,EAAE,gBAAgB,EAInC;IAED,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAenE;IAEK,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1E;IAEK,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAGpF;IAEK,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5E;IAEK,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;IAEK,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAW1F;IAEK,wBAAwB,CAC5B,OAAO,EAAE,+BAA+B,EACxC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,GACnC,OAAO,CAAC,IAAI,CAAC,CAEf;IAEK,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;IAEK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnC;IAED,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAAC,cAAc,CAAC,CA4BjF;CACF"}
@@ -1,11 +1,17 @@
1
1
  import type * as A from '@automerge/automerge';
2
- import { type AutomergeUrl, type DocHandle, type DocumentId } from '@automerge/automerge-repo';
2
+ import { type AutomergeUrl, type DocHandle, type DocumentId, type DocumentQuery } from '@automerge/automerge-repo';
3
3
  import { DatabaseDirectory, SpaceDocVersion } from '@dxos/echo-protocol';
4
4
  import { type DocMetrics } from './automerge-metrics';
5
5
  export declare class DatabaseRoot {
6
- private readonly _rootHandle;
6
+ private readonly _query;
7
7
  static mapLinks(doc: DocHandle<DatabaseDirectory>, mapping: Record<DocumentId, DocumentId>): void;
8
- constructor(_rootHandle: DocHandle<DatabaseDirectory>);
8
+ /**
9
+ * @param _query - Live `DocumentQuery` for the root doc. Carries both the
10
+ * `DocHandle` (synchronously created with the query) and the actual
11
+ * readiness state. See `getHandleState` in `@dxos/echo-pipeline` for why
12
+ * we read liveness off the query rather than `DocHandle.*` predicates.
13
+ */
14
+ constructor(_query: DocumentQuery<DatabaseDirectory>);
9
15
  get documentId(): DocumentId;
10
16
  get url(): AutomergeUrl;
11
17
  get isLoaded(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"database-root.d.ts","sourceRoot":"","sources":["../../../../src/db-host/database-root.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAyB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEtH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE,qBAAa,YAAY;IAeX,OAAO,CAAC,QAAQ,CAAC,WAAW;IAdxC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAI;gBAcpE,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC;IAEtE,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,GAAG,iBAEN;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAEzC;IAED,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAItC,UAAU,IAAI,eAAe,GAAG,IAAI;IASpC,WAAW,IAAI,MAAM,GAAG,IAAI;IAS5B,oBAAoB,IAAI,MAAM,GAAG,IAAI;IASrC,oBAAoB,IAAI,MAAM,GAAG,IAAI;IASrC,qBAAqB,IAAI,YAAY,EAAE;IAQvC,cAAc,IAAI,UAAU,GAAG,IAAI;CAOpC"}
1
+ {"version":3,"file":"database-root.d.ts","sourceRoot":"","sources":["../../../../src/db-host/database-root.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAEnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,qBAAqB,CAAC;AAEzE,qBAAa,YAAY;IAqBX,OAAO,CAAC,QAAQ,CAAC,MAAM;IApBnC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAI,CAYhG;IAED;;;;;OAKG;IACH,YAA6B,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAI;IAEzE,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,GAAG,iBAEN;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAEzC;IAED,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAErC;IAED,UAAU,IAAI,eAAe,GAAG,IAAI,CAOnC;IAED,WAAW,IAAI,MAAM,GAAG,IAAI,CAO3B;IAED,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAOpC;IAED,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAOpC;IAED,qBAAqB,IAAI,YAAY,EAAE,CAMtC;IAED,cAAc,IAAI,UAAU,GAAG,IAAI,CAMlC;CACF"}
@@ -1,14 +1,15 @@
1
1
  import { type Heads } from '@automerge/automerge';
2
- import { type Repo, type DocHandle, type DocumentId } from '@automerge/automerge-repo';
3
- import { Resource } from '@dxos/context';
2
+ import { type DocumentId, type DocumentQuery } from '@automerge/automerge-repo';
3
+ import { Context, Resource } from '@dxos/context';
4
4
  import { type DatabaseDirectory } from '@dxos/echo-protocol';
5
5
  import { type BatchedDocumentUpdates, type DocumentUpdate } from '@dxos/protocols/proto/dxos/echo/service';
6
- export type DocumentsSynchronizerParams = {
7
- repo: Repo;
6
+ import type { AutomergeHost } from '../automerge';
7
+ export type DocumentsSynchronizerProps = {
8
+ automergeHost: AutomergeHost;
8
9
  sendUpdates: (updates: BatchedDocumentUpdates) => void;
9
10
  };
10
11
  interface DocSyncState {
11
- handle: DocHandle<DatabaseDirectory>;
12
+ docQuery: DocumentQuery<DatabaseDirectory>;
12
13
  lastSentHead?: Heads;
13
14
  clearSubscriptions?: () => void;
14
15
  }
@@ -27,12 +28,12 @@ export declare class DocumentsSynchronizer extends Resource {
27
28
  * Job that schedules if there are pending updates.
28
29
  */
29
30
  private _sendUpdatesJob?;
30
- constructor(_params: DocumentsSynchronizerParams);
31
- addDocuments(documentIds: DocumentId[], retryCounter?: number): void;
31
+ constructor(_params: DocumentsSynchronizerProps);
32
+ addDocuments(documentIds: DocumentId[]): Promise<void>;
32
33
  removeDocuments(documentIds: DocumentId[]): void;
33
34
  protected _open(): Promise<void>;
34
35
  protected _close(): Promise<void>;
35
- update(updates: DocumentUpdate[]): Promise<void>;
36
+ update(ctx: Context, updates: DocumentUpdate[]): Promise<void>;
36
37
  private _startSync;
37
38
  _subscribeForChanges(syncState: DocSyncState): void;
38
39
  private _checkAndSendUpdates;
@@ -1 +1 @@
1
- {"version":3,"file":"documents-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAM3G,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,UAAU,YAAY;IACpB,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IAarC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAA8B;gBAEzB,OAAO,EAAE,2BAA2B;IAIjE,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,YAAY,SAAI,GAAG,IAAI;IAsB/D,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;cAQvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAMtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1C,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD,OAAO,CAAC,UAAU;IAWlB,oBAAoB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;YASrC,oBAAoB;IAqBlC,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,cAAc;CAYvB"}
1
+ {"version":3,"file":"documents-synchronizer.d.ts","sourceRoot":"","sources":["../../../../src/db-host/documents-synchronizer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGhF,OAAO,EAAE,OAAO,EAAkB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAG3G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,UAAU,YAAY;IACpB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAKD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IAarC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IAEzD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAA8B;IAEtD,YAA6B,OAAO,EAAE,0BAA0B,EAE/D;IAEK,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B3D;IAED,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAM/C;IAED,UAAyB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C;IAED,UAAyB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAG/C;IAEK,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnE;IAED,OAAO,CAAC,UAAU;IAYlB,oBAAoB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAOlD;YAEa,oBAAoB;IAqBlC,OAAO,CAAC,kBAAkB;YAmBZ,cAAc;CAiB7B"}